AntD Table组件设置每一行有一组Radio单选组件,需要与state中的数组数据dataList对应,即表格中某一行Radio的当前选项值与数组dataList中对应索引位置的值一致。如下图:
遇到的问题:
若在Radio.Group的设置value={this.state.dataList[index].check},并且onChange中拿新数据更新state中的dataList,会在控制台中看到组件在初始化时就会不断重复地刷新,猜测是初始value值时触发onChange,去更新state,导致再次刷新,因此无限触发onChange。
若只设置value={this.state.dataList[index].check},不设置onChange,会发现点击Radio无法切换,因为设置的value对应的是数组中某一索引位置里的值,因此无法得到更新,Radio状态也就无法切换。
解决思路:
参考网上的资料进行尝试,可实现的方案是设置Radio.Group的value值与数据绑定,并在每个Radio都onClick中,根据点击事件设置更改state中数据对应位置的值。参考代码如下图所示: