收藏
回答

勾选checkbox后,调用生命周期函数刷新,不会清空checkbox已勾选状态

框架类型 问题类型 终端类型 微信版本 基础库版本
小程序 Bug 工具 7.0.4 2.2.0

- 当前 Bug 的表现(可附上截图)

打开页面,默认是未选择状态,此时正确


勾选毕业证CheckBox 并且点击确定


点击确认按钮后,我会调用生命周期函数将页面刷新(为了测试同时调用了onLoad和onShow),可以看到此时控制带的CheckBox value=2 此前是Vaule=1 证明页面已经刷新了的,但是 上一次勾选的checkbox 状态checked 并没有刷新 而是被用在了下一个CheckBox中,即状态没有被重置

请问这个问题怎么解决??



- 预期表现

CheckBox 默认是未选择状态

- 复现路径


- 提供一个最简复现 Demo


最后一次编辑于  2019-04-12
回答关注问题邀请回答
收藏

6 个回答

  • 黄思程
    黄思程
    2019-04-12

    不是调用生命周期函数就会刷新的呀,你需要自己维护状态,操作完成把状态重置

    2019-04-12
    有用
    回复 2
    • 钢铁直男
      钢铁直男
      2019-04-12

      试过了 不行的 把checkbox的check设置为false也不行

      2019-04-12
      回复
    • 钢铁直男
      钢铁直男
      2019-04-12

      你的意思是我还是要重新将剩下的没勾选过的checkbox设置默认为false? 但是文档不是已经默认是未选中false吗?更何况我也没点击过的checkbox 为何会帮我勾选上了呢?


      2019-04-12
      回复
  • CoderHuw
    CoderHuw
    07-23

    checkbox的checked属性绑定的属性已经设置成false了,但是勾选状态依然没有变,文档上写checkedd属性可以用来设置初始状态。是不是就是说它压根不能通过数据驱动改变勾选状态。然后我换了方式,先将数据源清空,然后在nextTick()的回调中重新设置的数据源,生效了(用的uniapp框架)。

    07-23
    有用
    回复
  • Woo
    Woo
    2020-12-12

    您好 能分享下怎么解决的吗?

    因为现在我也是遇到这个问题。头都大了


    2020-12-12
    有用
    回复 1
    • 钢铁直男
      钢铁直男
      2021-01-08
      这个太久了,我也忘了,好像是自己手动重置一下
      2021-01-08
      回复
  • 张丽
    张丽
    2019-08-22

    楼主你的这个问题 最后怎么解决的

    2019-08-22
    有用
    回复 1
    • 张晓敏
      张晓敏
      2020-04-22
      this.setData({
            ["allChecked"]: false, 
      });
      重新调用一下就可以了
      2020-04-22
      回复
  • Farewell
    Farewell
    2019-04-12

    onShow没有刷新页面,页面当前的一些data都还在,checkbox的data没有更新,记录了上次选中的checkbox的index


    简单的做法就是直接加一个开关,在点击按钮之后先将checkbox-group去掉再加上,等于是重新渲染checkbox-group

    2019-04-12
    有用
    回复 2
    • 钢铁直男
      钢铁直男
      2019-04-16

      我尝试过把data清空更新了,也不行。

      2019-04-16
      回复
    • 张晓敏
      张晓敏
      2020-04-22
      将你的那个checkbox用setData方法重新更新一下就可以了
      2020-04-22
      回复
  • 是小白啊
    是小白啊
    2019-04-12

    麻烦提供能复现问题的代码片段(https://developers.weixin.qq.com/miniprogram/dev/devtools/minicode.html)

    2019-04-12
    有用
    回复 1
登录 后发表内容