rememberUpdatedState 例子理解

rememberUpdatedState 官方解釋就不扯這么多了,知道怎么用就完了殖演。
其實(shí)就是把一個(gè)非狀態(tài)的參數(shù)變成有有狀態(tài)
直接上例子 注意注釋

@Composable
fun Greeting() {
  //這是一個(gè)有狀態(tài)的btnColor
    var btnColor by remember {
        mutableStateOf("unknown")
    }
    //方式一:將btnColor作為參數(shù)傳遞到另一個(gè)可組合方法中
    timer(btnColor = btnColor)
    //方式二:直接使用btnColor
    LaunchedEffect(key1 = Unit, block = {
        delay(8000)
//因?yàn)樵谶@個(gè)作用域里氧秘,btnColor是有狀態(tài)的,所以延遲過后能打出更新的值
        Log.e(">>>", "out btnColor: $btnColor")
    })
    //點(diǎn)擊btn時(shí)剃氧,會(huì)重組敏储。
    Column {
        OutlinedButton(onClick = {
            btnColor = "black"
        }) {
            Text(text = "black btn")
        }
        OutlinedButton(onClick = {
            btnColor = "white"
        }) {
            Text(text = "white btn")
        }
    }
}

@Composable
fun timer(btnColor: String) {//這里的btnColor 是無(wú)狀態(tài)的
    Log.e(">>>", "compose: $btnColor")
//只有把無(wú)狀態(tài)的btnColor轉(zhuǎn)成有狀態(tài)的,也就是要state朋鞍,后續(xù)的改變值才能正常獲取,
//rememberUpdatedState的作用就是第一次進(jìn)入的時(shí)候生成一個(gè)新的有狀態(tài)的btnColor滥酥,第二次再進(jìn)
//去,直接出發(fā) apply 更新值缆蝉。
    var rememberBtnColor = rememberUpdatedState(newValue = btnColor)

//單純用remember瘦真,是沒用的,因?yàn)闆]有狀態(tài)
//    var rememberBtnColor = remember { btnColor }

//這樣也是沒用的原杂,第二次賦值導(dǎo)致rememberBtnColor 
// 是一個(gè)新的對(duì)象您机,并不是改變狀態(tài)值年局,由于key1 = Unit 并不會(huì)更新LaunchedEffect里面的 { } 內(nèi)容
//    var rememberBtnColor  by remember(btnColor) {
//        Log.e(">>>", "remember compose: $btnColor")
//        mutableStateOf(btnColor)
//    }


    LaunchedEffect(key1 = Unit, block = {
        delay(5000)
        Log.e(">>>", "timer btnColor: $btnColor")
        Log.e(">>>", "timer remember btnColor: ${rememberBtnColor}")
    })
}
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末矢否,一起剝皮案震驚了整個(gè)濱河市僵朗,隨后出現(xiàn)的幾起案子焚志,更是在濱河造成了極大的恐慌,老刑警劉巖酱酬,帶你破解...
    沈念sama閱讀 222,000評(píng)論 6 515
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件膳沽,死亡現(xiàn)場(chǎng)離奇詭異,居然都是意外死亡陨界,警方通過查閱死者的電腦和手機(jī)痛阻,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 94,745評(píng)論 3 399
  • 文/潘曉璐 我一進(jìn)店門阱当,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái),“玉大人录淡,你說(shuō)我怎么就攤上這事油坝。” “怎么了澈圈?”我有些...
    開封第一講書人閱讀 168,561評(píng)論 0 360
  • 文/不壞的土叔 我叫張陵瞬女,是天一觀的道長(zhǎng)。 經(jīng)常有香客問我盯桦,道長(zhǎng)渤刃,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 59,782評(píng)論 1 298
  • 正文 為了忘掉前任略号,我火速辦了婚禮洋闽,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘羽利。我一直安慰自己刊懈,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 68,798評(píng)論 6 397
  • 文/花漫 我一把揭開白布匾浪。 她就那樣靜靜地躺著卷哩,像睡著了一般。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上瓢娜,一...
    開封第一講書人閱讀 52,394評(píng)論 1 310
  • 那天眠砾,我揣著相機(jī)與錄音褒颈,去河邊找鬼。 笑死,一個(gè)胖子當(dāng)著我的面吹牛刨疼,可吹牛的內(nèi)容都是我干的鹅龄。 我是一名探鬼主播扮休,決...
    沈念sama閱讀 40,952評(píng)論 3 421
  • 文/蒼蘭香墨 我猛地睜開眼玷坠,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼八堡!你這毒婦竟也來(lái)了?” 一聲冷哼從身側(cè)響起兄渺,我...
    開封第一講書人閱讀 39,852評(píng)論 0 276
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤溶耘,失蹤者是張志新(化名)和其女友劉穎服鹅,沒想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體企软,經(jīng)...
    沈念sama閱讀 46,409評(píng)論 1 318
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡仗哨,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 38,483評(píng)論 3 341
  • 正文 我和宋清朗相戀三年厌漂,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片苇倡。...
    茶點(diǎn)故事閱讀 40,615評(píng)論 1 352
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡旨椒,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出综慎,到底是詐尸還是另有隱情,我是刑警寧澤好港,帶...
    沈念sama閱讀 36,303評(píng)論 5 350
  • 正文 年R本政府宣布,位于F島的核電站媚狰,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜糊肠,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,979評(píng)論 3 334
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望嗤形。 院中可真熱鬧弧圆,春花似錦、人聲如沸搔预。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,470評(píng)論 0 24
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)船庇。三九已至,卻和暖如春鸭轮,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背邑蒋。 一陣腳步聲響...
    開封第一講書人閱讀 33,571評(píng)論 1 272
  • 我被黑心中介騙來(lái)泰國(guó)打工吞鸭, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人遮咖。 一個(gè)月前我還...
    沈念sama閱讀 49,041評(píng)論 3 377
  • 正文 我出身青樓造虏,卻偏偏與公主長(zhǎng)得像麦箍,于是被迫代替她去往敵國(guó)和親陶珠。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,630評(píng)論 2 359

推薦閱讀更多精彩內(nèi)容