У меня есть два компонента. Существует кнопка на Componenta, при нажатии на него, он изменяет состояние:React-Native: Состояние изменено, но возвращает старое значение
import ComponentB from './ComponentB'
.
.
constructor(props) {
super(props);
this.state = {
filter: true,
};
}
.
.
.
<TouchableOpacity
onPress={()=>{ this.setState({filter: !this.state.filter }); }}
>
{this.state.filter ?
<Text>Enabled</Text> :
<Text>Disabled</Text>
}
</TouchableOpacity>
.
.
.
<ComponentB filter={this.state.filter} />
ComponentB
render(){
return(
<View><Text>{this.props.filter}</Text></View>
);
}
Забавно, когда вы нажимаете на кнопку , состояние действительно меняется, и текст, который основан на состоянии, также изменится. Поэтому в первый раз он изменяется от True
до False
. Но ComponentB получит еще True
вместо False
. Когда вы нажмете на него снова, состояние изменится с False
на True
, текст также отображается правильно, но на этот раз ComponentB получит True
вместо False
. Я передаю реквизиты ComponentB неправильно? Я что-то упускаю?
Заранее спасибо.
Можете ли вы опубликовать, что такое 'ComponentB'? –
@BradBumbalough Пожалуйста, проверьте вопрос, который я обновил. – Ataomega
Так что ComponentB всегда показывает «True», несмотря ни на что? –