Я хочу запустить функцию при изменении состояния в моем приложении. У меня модальный с кнопкой, которая меняет состояние.React Native Выполнение функции при изменении состояния
Мой дом компонент (отредактированный)
...
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
Не могли бы вы оставить немного больше кода, чтобы показать, как связаны две ваши сниппеты? – ArneHugo
Я отредактировал свой код, чтобы отразить, как они связаны. – gbland777
Вы посмотрели [link] (https://rnplay.org/apps/fDGs3A) в ответ @ fumi_hwh? Кажется, работает со мной. Если это не поможет вам решить проблему, попробуйте создать исполняемый пример в [rnplay.org] (https://rnplay.org), который воспроизводит вашу проблему. (Изменить: [Изменено его пример] (https://rnplay.org/apps/rKeOYg), чтобы быть немного более похожим на ваш.) – ArneHugo