这可能是一个愚蠢的问题,因为我真的是新来的本地人,我不确定我做的事是否正确。
基本上我有2个屏幕,分别是home和setMoney。
在家里,我有一个从AsyncStorage.getItem()获得的<text>${this.state.money}</text>
。 setMoney是我执行setItem的地方。它工作正常,我可以在家里看到在setMoney屏幕上显示的内容,但是我必须先重新加载。如果我只是在屏幕之间切换,它不会显示更改。任何帮助将不胜感激。
答案 0 :(得分:1)
要实现此目的,您需要在应用程序中实现redux并将资金置于应用程序的全局状态,无需重新加载,并且更改后资金将立即得到更新。解决方法是使用react-native-event-listners,如以下示例所示
在主屏幕的 componentDidMount 功能
中EventRegister. addEventListener('updated',()=>{
AsyncStorage.getItem()
.then(item=>{
this.setState({money:item})
})
})
在将项目设置为存储后,在功能内的设置货币屏幕中,您可以执行
EventRegister.emit('updated')
您还可以通过以下方法直接发送货币价值,而无需使用同一程序包的存储空间:
在主屏幕的 componentDidMount 功能
中EventRegister. addEventListener('updated',(item)=>{
this.setState({money:item})
})
在将项目设置为存储后,在功能内的设置货币屏幕中,您可以执行
EventRegister.emit('updated',valueToSend)