假设我的代码看起来像这样
@Composable
fun ExampleList() {
val tickers by exampleViewModel.tickers.observeAsState()
LazyColumn() {
items(items = tickers) { ticker ->
ExampleItem(ticker)
}
}
}
@Composable
fun ExampleItem(ticker: Ticker) {
Text(text= ticker.lastPrice)
}
无论如何都可以在每次更新代码时在 ExampleItem Compose 中获取代码的先前值?
我想知道 React Native 中是否有类似 componentDidUpdate 的东西
答案 0 :(得分:1)
我发现我可以通过使用 remember {mutableStateOf}
获得股票的最后一个值,如下所示:
var lastTicker by remember { mutableStateOf(ticker)}
SideEffect {
if (lastTicker != ticker) {
// compare lastTicker to current ticker before assign new value
lastTicker = ticker
}
}
通过使用 remember { mutableStateOf(ticker)}
,我可以通过重组保留股票代码的值。
然后在 SideEffect 中,我可以使用 lastTicker 值(在我的情况下比较最后一个行情和当前行情),然后将其分配给新值以用于下一个组合
或使用 derivedStateOf
只观看股票代码变化,避免重新组合
val compareValue by remember(ticker) {
derivedStateOf {
// compare lastTicker to current ticker before assign new value
lastTicker = ticker
// return value
}
}