React native 如何更改a的值<;文本>;从不同的屏幕?

React native 如何更改a的值<;文本>;从不同的屏幕?,react-native,React Native,这可能是一个愚蠢的问题,因为我是一个新手,我不确定我做的事情是否正确 基本上我有两个屏幕,home和setMoney 在家中,我有一个${this.state.money},它是从AsyncStorage.getItem()获得的。setMoney是我做setItem的地方。它工作正常,我可以在家里看到我放在setMoney屏幕上的任何东西,但我必须先重新加载。如果我只是在屏幕之间切换,它不会显示更改。任何帮助都将不胜感激。要实现这一点,您需要在应用程序中实施redux,并将钱放在应用程序的全局

这可能是一个愚蠢的问题,因为我是一个新手,我不确定我做的事情是否正确

基本上我有两个屏幕,home和setMoney


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

要实现这一点,您需要在应用程序中实施redux,并将钱放在应用程序的全局状态,无需重新加载,只要您更改,钱就会得到更新。一种解决方法是使用以下示例

在主屏幕的组件安装功能中

EventRegister. addEventListener('updated',()=>{
AsyncStorage.getItem()
.then(item=>{
this.setState({money:item})
})
})
EventRegister. addEventListener('updated',(item)=>{

this.setState({money:item})

})
在您的设置货币屏幕内的功能后,您可以在存储设置项目

EventRegister.emit('updated')
EventRegister.emit('updated',valueToSend)
通过执行以下操作,您也可以不使用同一软件包的存储直接发送货币价值:

在主屏幕的组件安装功能中

EventRegister. addEventListener('updated',()=>{
AsyncStorage.getItem()
.then(item=>{
this.setState({money:item})
})
})
EventRegister. addEventListener('updated',(item)=>{

this.setState({money:item})

})
在您的设置货币屏幕内的功能后,您可以在存储设置项目

EventRegister.emit('updated')
EventRegister.emit('updated',valueToSend)

你查过像redux或mobx这样的州管理库吗?@Perniferous我还没有查过,我只是几个小时前才开始查,还不知道。我认为这是一个本地支持的东西。但我会继续读下去,它在React中通过在屏幕之间利用道具得到了本机支持。如果您希望在全球范围内改变很多州,州管理库从长远来看会对您有很大帮助。@Perniferous我想知道这是如何做到的,只是为了让我知道它是如何工作的。对不起,我刚刚意识到我误解了您的问题有两个部分,您还利用了一个异步调用,该调用只会在您当前处于该屏幕上时填充数据。我相信你想做的是能够从不同的屏幕调用该函数,并在上一个屏幕上看到数据的变化?谢谢。学习一门新语言最困难的部分之一是不熟悉现有的语言。