微信小程序里关于checkbox的坑

需求背景

小程序项目内,需要添加一个checkbox,用来判断用户是否同意某种协议。

遇到的坑

我只打算使用一个checkbox,而非checkbox-group,最初给checkbox添加bindchange属性,却无任何反应。通过查看官网才知晓,checkbox只有bindtap,我又将bindtap函数里的事件参数打印出来,却发现没有一个字段能表示是否勾选。

官网上说checkbox添加checked属性值,我按照如下方式加了:

js 复制代码
<checkbox checked="{{ isChecked }}" />

Page({
  data: {
      isChecked: false,
  },
})

checkbox已经勾选了,isChecked的值却仍然是false,很明显,它不是响应式的。

万般无奈的解决办法

无奈之下,我只能使用checkbox-group,给它绑定bindchange事件,代码如下所示:

js 复制代码
<checkbox-group bindchange="handleChange">
    <checkbox value="{{ isChecked }}" />
</checkbox-group>

Page({
  data: {
      isChecked: false,
  },
  handleChange(e) {
    this.setData({
      isChecked: Boolean(e.detail.value[0]),
    });
  },
})

这种感觉,有点尴尬,就像你本来只准备用一把普通刀杀鸡,结果呢,别人非得让你用牛刀来杀,好生别扭!

相关推荐
哆啦A梦15884 小时前
【vue实战】商城后台管理系统 01 项目介绍
前端·javascript·vue.js
爱吃土豆的马铃薯ㅤㅤㅤㅤㅤㅤㅤㅤㅤ4 小时前
java实现登录:多点登录互踢,30分钟无操作超时
java·前端
一字白首4 小时前
Vue Router 进阶,声明式 / 编程式导航 + 重定向 + 404 + 路由模式
前端·javascript·vue.js
广州华水科技5 小时前
单北斗变形监测在水库安全中的应用与维护该如何实施?
前端
计算机毕设指导65 小时前
基于微信小程序的积分制零食自选平台【源码文末联系】
java·spring boot·mysql·微信小程序·小程序·tomcat·maven
GIS好难学5 小时前
0帧起手《Vue零基础教程》,从前端框架到GIS开发系列课程
前端·vue.js·前端框架
行走的陀螺仪5 小时前
重绘和重排怎么触发?怎么优化?
前端·css·性能优化·css3·浏览器原理
尘世中一位迷途小书童5 小时前
项目大扫除神器:Knip —— 将你的代码库“瘦身”到底
前端·架构·代码规范
StarkCoder5 小时前
🚫求求你别再手动改类名了!Swift 自动混淆脚本上线,4.3 头发保卫战正式开始!
前端