这个问题表现为当进入页面第一次点击button的时候setData是生效的,radio是可以看到被选中了,当我手动选择了其他radio,再点button就不生效了,data里面的checked值是改变了,但是页面没变,radio没被选中。
经过查找,了解到这个组件存在的一些问题,是因为手动选中后并没有更新绑定数据data当中的状态值。所以需要手动更新绑定数据状态。参考使用一下代码。
<radio value="{{item.value}}" checked="{{item.checked}}" disabled="{{item.disabled}}" />
上述代码改为:
<radio value="{{index}}" checked="{{item.checked}}" disabled="{{item.disabled}}" />
// js里这样写。
radioChange(e) {
const { value = 0 } = e.detail
let { items = [] } = this.data
items.map(item => item.checked = false) // 将数组里所有的选中设置为未选择
items[value].checked = true // 将点击这一项设置为选中
this.setData({
items
})
},
代码更能说明问题,你现在知道原因了吧。
阅读全文
公众号近期文章
赞赏支持
0 Responses to “支付宝小程序radio-group组件设置选中状态不生效”