radio-group通过setData刷新后选中状态被保留了,怎么解决?
发布于 6 年前 作者 liaoqiang 8291 次浏览 来自 官方Issues

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

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

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 回复

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

然后wxml

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

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

这样?

回到顶部