Сценарий
В моем приложении React Native у меня есть навигатор вкладок. На каждой вкладке у меня есть компонент <Checkbox>
, который отмечен/не отмечен в соответствии с переменной состояния, и вы можете переключать отмеченное/не отмеченное значение, щелкнув флажок. Эти компоненты 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
.
Мои вопросы:
Почему переключение флажка на одной вкладке влияет на установленное значение флажка на других вкладках?
Как флажок в B может измениться с отмеченного на неотмеченный, если
this.state.a
не переключается наfalse
?Почему
this.state.a
в B переключается наfalse
, когда я перезагружаю страницу?