Сценарий
В моем приложении React Native есть навигатор по вкладкам. В каждой вкладке у меня есть компонент <Checkbox>
, который отмечен / не отмечен в соответствии с переменной состояния, и вы можете переключать проверенное / непроверенное значение, установив флажок. Эти компоненты флажка выглядят так:
<CheckBox
checked={this.state.a}
onPress={() => this.setState({a: !this.state.a})}
/>
Каждая из вкладок является собственным компонентом со своим собственным состоянием, каждое из которых содержит переменную состояния a
. Каждый <Checkbox>
начинается «проверено», то есть this.state.a
равно true
.
Необычное поведение
Скажем, у нас есть вкладки A, B и C, все с this.state.a
изначально true
(и поэтому каждый из их флажков отмечен). Если я нажимаю флажок на вкладке A, this.state.a
в A становится false
, и флажок снимается, как и ожидалось. НО, когда я перехожу на вкладку B, флажок там также не отмечен. this.state.a
в B по-прежнему true
по некоторым причинам. Если я сохраню один из моих файлов, экран будет перезагружен, и this.state.a
в B теперь станет false
.
Мои вопросы:
1) Почему переключение флажка на одной вкладке влияет на переключаемое значение флажка на других вкладках?
2) Как установить флажок в B из отмеченного в непроверенный, если this.state.a
не переключается в false
?
3) Почему this.state.a
в B переключается на false
, когда я перезагружаю страницу?
Любое понимание будет оценено. Пожалуйста, дайте мне знать, если вам нужно увидеть больше кода или чего-либо еще.
Спасибо!