我想在我的应用程序中的状态更改时触发一个函数。我有一个带有更改状态的按钮的模态。
我的主页组件(已编辑)
...
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和'componentWillReceiveProps(nextProps)'之前,我遇到了这个问题,但这让我在同一个组件中难倒了。
我正在使用文档中的本机模态组件。 https://facebook.github.io/react-native/docs/modal.html
可触摸?可触摸亮点?
除了 TouchaleHighlight 标签外,我没有在您的代码中发现任何问题。
https://rnplay.org/apps/fDGs3A