保存 /将复选框状态保存在React Native应用程序中(已检查或未选中) /提供给复选框的无效道具

我刚刚在我的React Native应用程序中从本机碱中实现了复选框组件。每次我检查/取消选中复选框时,都会有些变量更改其状态(是或错误),然后存储。基于存储在Asyncstorage中的该值,我可以在应用程序中进行一些更改,并且可以正常工作。

我现在面临的问题是:我需要复选框才能在使用该应用程序时保持检查 /未选中(即使从一个页面更改为另一页),并且在用户没有更改时无法更改(它总是会返回对于默认值,一旦更改页面),我将变量存储为字符串,但显然Checkbox仅接受布尔变量。 PS: 我试图将状态存储为布尔值,但在这里不起作用的是代码:

  1. constructor(props) {
  2. super(props);
  3. this.state ={ status: false }
  4. };
  5. toggleStatus()
  6. {
  7. this.setState({
  8. status: !this.state.status
  9. });
  10. AsyncStorage.setItem("myCheckbox",JSON.stringify(this.state.status));
  11. }
  12. render(){
  13. return(
  14. ....
  15. <CheckBox checked={this.state.status}
  16. onPress={() => this.toggleStatus()} />
  17. );}

我什至试图改变这样的状态:

  1. componentWillMount(){
  2. AsyncStorage.getItem('myCheckbox').then((value) => {
  3. JSON.parse(value)
  4. this.setState({
  5. status: value
  6. });
  7. if (this.state.status == 'false') {
  8. this.setState({
  9. status: false
  10. });
  11. }
  12. else if (this.state.status == 'true') {
  13. this.setState({
  14. status: true
  15. });
  16. }
  17. else {
  18. this.setState({
  19. status: false
  20. });
  21. }
  22. });
  23. }

但是,它一直在发出警告: enter image description here

看答案

我复制了您的代码(在: https://snack.expo.io/sjszzzvbw),并且没有找到任何理由 布尔。您是否在代码中的其他任何地方操纵状态?

未经允许不得转载:迪欧吧_技术交流_资源分享_热点资讯_免费VPS空间 » 保存 /将复选框状态保存在React Native应用程序中(已检查或未选中) /提供给复选框的无效道具