Tilan nostaminen value- ja onValueChange-parametreilla
Välittäkää tila alaspäin ja tapahtumat ylöspäin.
Tilan nostaminen value- ja onValueChange-parametreilla on ilmainen Jetpack Compose Academy-oppitunti CoddyKitissä. Tämä on oppitunti 2/4. Voit lukea koko oppitunnin alta ilmaiseksi ja harjoitella sen jälkeen käytännössä selaimessa sisäänrakennetulla koodieditorilla ja ympäri vuorokauden käytettävissä olevan tekoälytuutorin avulla. Oppitunti kuuluu Jetpack Compose Academy-oppimispolkuun, ja edistymisesi synkronoituu verkon ja CoddyKit-sovelluksen välillä. Jetpack Compose Academy-kurssilla on yhteensä 4 oppituntia.
Tilan nostaminen yhdellä lauseella
Tilan nostaminen tarkoittaa tilan siirtämistä Composable-komponentista sen kutsujalle. Komponentista tulee tilaton, ja ylätason komponentti pysyy vastuussa tilasta.
Perusmalli
Korvatkaa sisäinen tila kahdella parametrilla: näytettävällä value-arvolla ja muutoksista ilmoittavalla onValueChange-takaisinkutsulla.
fun NameField(value: String, onValueChange: (String) -> Unit) {
TextField(value = value, onValueChange = onValueChange)
}Tila alas, tapahtumat ylös
Data kulkee alas valuen kautta, ja käyttäjän toiminnot kulkevat ylös onValueChangen kautta. Tätä yksisuuntaista silmukkaa kutsutaan yksisuuntaiseksi datavirraksi. ↕️
Kuka omistaa tilan nyt
Ylätason komponentti omistaa tilan rememberin avulla ja välittää sen alaspäin. Lapsi ei koskaan tallenna sitä, joten kaksi kutsujaa voi ohjata samaa komponenttia eri tavoin.
var name by remember { mutableStateOf("") }
NameField(value = name, onValueChange = { name = it })value: lukupuoli
value-parametri kertoo, mitä komponentti näyttää tällä hetkellä. Lapsi voi vain lukea sitä; se ei koskaan muokkaa sitä suoraan.
onValueChange: kirjoituspuoli
Kun käyttäjä kirjoittaa, lapsi kutsuu onValueChange(newText)-takaisinkutsua. Ylätason komponentti päättää, päivittääkö se tilaansa ja miten.
Miksi ei muokata suoraan
Tilaton lapsi ei voi vain sijoittaa value-parametrille uutta arvoa, koska se on pelkkä syöte. Muutoksesta ilmoittaminen ylöspäin pitää hallinnan yhdellä omistajalla.
Ohjatut komponentit
Tämä on ohjattu komponentti: ylätason komponentti päättää täysin, mitä näytetään. Voitte muuntaa, ohittaa tai tarkistaa syötteen ennen sen tallentamista.
NameField(value = name, onValueChange = { name = it.uppercase() })Saman kentän uudelleenkäyttö
Koska kentän tila on nostettu ylemmäs, voitte sijoittaa sen kirjautumisnäyttöön, hakupalkkiin tai asetussivulle, joista jokaisella on oma tilansa.
Tilan nostaminen tekstikenttää laajemmalle
Malli sopii kaikenlaiseen tilaan: tarkistettuun Boolean-arvoon ja onCheckedChangeen tai valittuun kohteeseen ja onSelectiin. Idea on sama, nimet vain vaihtuvat.
fun ToggleRow(checked: Boolean, onCheckedChange: (Boolean) -> Unit) {
Switch(checked = checked, onCheckedChange = onCheckedChange)
}Yksinkertainen sääntö
Nostakaa tila alimmalle yhteiselle ylätason komponentille, jonka tarvitsee lukea tai muuttaa sitä, älkää ylemmäs. Näin omistajuus pysyy selvänä ja koodi siistinä.
Pikatarkistus
Mitä lapsi tekee nostamisen mallissa, kun käyttäjä kirjoittaa?
Kertaus
Tilan nostaminen korvaa sisäisen tilan value-arvolla ja onValueChange-takaisinkutsulla. Tila kulkee alas, tapahtumat ylös, ja ylätason komponentti pysyy vastuussa. 🚀
Opi Kotlin tekoälytuutorin avulla — ilmaiseksi
Kirjoita ja suorita oikeaa koodia selaimessa, saa välitöntä apua tekoälytuutorilta ympäri vuorokauden ja jatka siitä, mihin jäit, verkossa tai sovelluksessa.
- Kurssit
- 30
- Oppitunnit
- 120
Usein kysytyt kysymykset
Onko oppitunti ”Tilan nostaminen value- ja onValueChange-parametreilla” ilmainen?
Kyllä – oppitunnin ”Tilan nostaminen value- ja onValueChange-parametreilla” koko tekstin voi lukea täällä verkossa ilmaiseksi. Jos haluat harjoitella interaktiivisesti sisäänrakennetulla koodieditorilla ja ympäri vuorokauden käytettävissä olevan tekoälytuutorin avulla sekä avata koko Jetpack Compose Academy-kurssin, päivitä CoddyKit PROhon. Jetpack Compose Academy-kurssilla on yhteensä 4 oppituntia.
Mitä opin oppitunnilla ”Tilan nostaminen value- ja onValueChange-parametreilla”?
Välittäkää tila alaspäin ja tapahtumat ylöspäin. Harjoittelet Jetpack Compose Academy-aihetta koodilla, jonka suoritat suoraan selaimessa. Ympäri vuorokauden käytettävissä oleva tekoälytuutori vastaa kysymyksiisi oppitunnin aikana.
Tarvitsenko kokemusta aloittaakseni Jetpack Compose Academy-opiskelun?
Aiempi kokemus ei ole tarpeen. CoddyKitin Jetpack Compose Academy-oppimispolku sopii vasta-alkajista edistyneisiin, joten voit aloittaa tästä tai alusta ja edetä omaan tahtiisi. Tämä on oppitunti 2/4.
Kuinka kauan ”Tilan nostaminen value- ja onValueChange-parametreilla”-oppitunnin suorittaminen kestää?
Useimmat CoddyKitin oppitunnit kestävät noin 5–10 minuuttia. Jokainen oppitunti on lyhyt ja interaktiivinen, joten edistyt tasaisesti ja voit jatkaa siitä, mihin jäit – sekä verkossa että sovelluksessa.
Voinko kirjoittaa ja suorittaa koodia tällä Jetpack Compose Academy-oppitunnilla?
Kyllä. Jokainen Jetpack Compose Academy-oppitunti sisältää sisäänrakennetun koodieditorin, joten voit kirjoittaa ja suorittaa oikeaa koodia suoraan selaimessa ja saada välitöntä palautetta tekoälyltä – paikallista asennusta ei tarvita.
Kaikki tämän kurssin oppitunnit
- Tilalliset ja tilattomat Composable-funktiot
- Tilan nostaminen value- ja onValueChange-parametreilla
- Yksi totuuden lähde
- Compose-tilapaikat ja sisältölambdat