java 生成复选框_在本机中生成/创建复选框组件

在本文中,作者遇到了在React Native中使用AsynStorage存储复选框状态的问题。由于AsynStorage默认存储字符串,而复选框需要布尔值,作者尝试解决这一冲突。为了解决这个问题,作者决定创建自定义的复选框组件,使用TouchableOpacity实现。代码示例展示了如何在设置页面中切换复选框状态并保存到AsyncStorage,以及在其他页面中获取并显示之前的状态。然而,目前的实现存在一个问题:需要两次点击才能更新状态。
摘要由CSDN通过智能技术生成

我一直面临着本机基础复选框和AsynStorage的一些问题 . 事实上,AsynStorage默认只接受字符串,但也可以存储布尔变量,我试图使用该方法,但每次都会得到一个字符串存储 . 虽然复选框只接受布尔变量并在我尝试使用字符串时抛出警告,但它不显示复选框的先前状态(已选中或未选中) . 所以,我决定使用TouchbleOpacity制作我自己的复选框..所以你们有任何想法如何制作它?这是我想要实现的结果:

5ab11a9c7ddae2802d66687fcef0b3cb.png

因此,目的是创建一个复选框设置页面,控制另一个页面中文本的样式,并获取上一次离开的复选框,例如:如果我检查它,我会更改页面并再次返回设置页面,我需要检查它(指示以前的状态)代码在设置页面中:

toggleStatus() {

this.setState({

status: !this.state.status

});

AsyncStorage.setItem("myCheckbox",JSON.stringify(this.state.status));

}

// to get the previous status stored in the AsyncStorage

componentWillMount(){

AsyncStorage.getItem('myCheckbox').then((value) => {

this.setState({

status: value

});

if (this.state.status == "false") {

this.setState({

check: false

});

}

else if (this.state.status == "true") {

this.setState({

check: true

});

}

if (this.state.status == null) {

this.setState({

check: false

});

}

});

}

render {

return(

...

onPress={() => { this.toggleStatus() }

checked={ this.state.check }/>

)}

在其他页面中:

componentDidMount(){

AsyncStorage.getItem('myCheckbox').then((value) => {

JSON.parse(value)

this.setState({

status: value

});

});

}

这个代码在 TWO 点击之后改变状态,我不知道为什么我在控制台中得到这个奇怪的输出,每次我点击复选框

5cac2d1c3997b89e7f66249ad275c27e.png

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值