Reactjs 响应本机在状态更改时执行函数
我想在我的应用程序状态发生变化时启动一个函数。我有一个模式,带有一个改变状态的按钮 我的主页组件已编辑Reactjs 响应本机在状态更改时执行函数,reactjs,react-native,Reactjs,React Native,我想在我的应用程序状态发生变化时启动一个函数。我有一个模式,带有一个改变状态的按钮 我的主页组件已编辑 ... constructor(props) { super(props); this.state = { color:'red', modalVisible: false, } } ... render() { return ( <View> <Modal animationType={"slide"}
...
constructor(props) {
super(props);
this.state = {
color:'red',
modalVisible: false,
}
}
...
render() {
return (
<View>
<Modal
animationType={"slide"}
transparent={false}
visible={this.state.modalVisible}
>
<View style={{marginTop: 22}}>
<TouchableOpacity onPress={()=>this.setState({color:'blue'})}>
<Text>Blue</Text>
<TouchableOpacity>
<TouchableOpacity onPress={()=>this.setModalVisible(false)}>
<Text>Blue</Text>
<TouchableOpacity>
</View>
</Modal>
<Text style={{color:this.state.color}}>
Foo
</Text>
</View>
)
...
但是,当我关闭模式时,文本的颜色不会更改为蓝色。它保持红色,直到我打开模式备份,然后再次关闭。就像“颜色”的状态没有被更新一样。在使用redux和“componentWillReceivePropsnextProps”之前,我就遇到过这种情况,但这让我很难在同一个组件中工作
我正在使用文档中的本机模态组件 可触摸?触控高光 除了TouchaleHighlight标签,我在您的代码中没有发现任何问题
你能多发布一些代码来展示你的两个代码片段是如何关联的吗?我编辑了我的代码以反映它们是如何关联的。你看过in@fumi_-hwh的答案了吗?似乎对我有用。如果它不能帮助您解决问题,请尝试创建一个可运行的示例来重现您的问题。编辑:更像你的。你有解决办法吗?我有同样的问题。例如emty page。自从我问这个问题已经三年了,我可以说当我问这个问题时,我没有完全理解react生命周期。现在我建议在react钩子中使用useffect钩子。这将允许您在定义的状态发生更改时更新状态/调用函数。