如何从其他屏幕更改<text>的值?

时间:2019-04-30 13:35:41

标签: react-native

这可能是一个愚蠢的问题,因为我真的是新来的本地人,我不确定我做的事是否正确。

基本上我有2个屏幕,分别是home和setMoney。

在家里,我有一个从AsyncStorage.getItem()获得的<text>${this.state.money}</text>。 setMoney是我执行setItem的地方。它工作正常,我可以在家里看到在setMoney屏幕上显示的内容,但是我必须先重新加载。如果我只是在屏幕之间切换,它不会显示更改。任何帮助将不胜感激。

1 个答案:

答案 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)