收藏
回答

radio-group通过setData刷新后选中状态被保留了,怎么解决?

如下是第一步,选择第二个,确定,进入第二步

这里期望,进入第二步后也全部未选中,但是实际复用了第一步的结果(导致第二个选项被选中):

wxml代码片段:

<view >

<text> 问题{{curQuestionIdx}}:{{questionItems[curQuestionIdx].question}} </text>

<radio-group bindchange="radioChange">

<label class="checkbox" wx:for="{{questionItems[curQuestionIdx].candidates}}" wx:key="unique" >

<radio value="{{index}}" checked="">

<text class="raidoItem">{{item.cont}}</text>

</radio>

</label>

</radio-group>

<button bindtap="btnSureClick">确定</button>

js代码片段

  radioChange: function (e) {

    this.data.curQuestionSelectItem = e.detail.value

  },

  btnSureClick: function(e) {

    var ansCand = this.data.questionItems[this.data.curQuestionIdx]["candidates"][this.data.curQuestionSelectItem]

    if (ansCand["answer"] == false) {    

    } else {

      this.data.curQuestionSelectItem = -1;

      //this.data.curQuestionIdx = 1; //用下面的方法,才会刷新

      this.setData({curQuestionIdx: 1})

    }

  },





回答关注问题邀请回答
收藏

2 个回答

  • yyx
    yyx
    2020-02-25

    解决了,所有数据都加上 "checked":false字段,

    然后wxml

    <radio value="{{index}}" checked="{{index.checked}}">


    2020-02-25
    有用 2
    回复 1
    • Wellis
      Wellis
      2020-10-28
      楼上正解,有效,解决了我的难题,赞赞
      2020-10-28
      回复
  • 神经蛙
    神经蛙
    2020-02-25

    <radio value="{{index}}" checked="{{!!item.answer}}">

    这样?



    2020-02-25
    有用
    回复 1
    • yyx
      yyx
      2020-02-25
      没用
      2020-02-25
      回复
登录 后发表内容
问题标签