javascript - 反应原生单选按钮未选中填充圆圈
问题描述
我在地图函数中有这个简单的代码来构建一个单选按钮:
<DataTable>
{props.options.map((o,i) =>{
return(
<>
<DataTable.Row>
<DataTable.Cell style={{flex:7}}>{o.name}</DataTable.Cell>
<DataTable.Cell style={{flex:1}}>
<RadioButton
value={i}
status={ o.sel ? 'checked' : 'unchecked' }
onPress={() =>{updateRadio(i)}}
/>
</DataTable.Cell>
</DataTable.Row>
</>
</DataTable>
使用此功能更新收音机:
const updateRadio = (index) => {
var temp = props.options
temp.map((o,i) =>{
if (i === index)
temp[i].sel = true
else
temp[i].sel = false
})
props.setOptions(old => [...temp])
}
props.options 是这样的:
[{
"id": "602b883a53c89933b8238339",
"name": "Yes",
"sel": false,
"value": null
},
{
"id": "602b883a53c89933b823833a",
"name": "No",
"sel": false,
"value": null
}]
如果我看到 props.options 它可以正确更新,但收音机无法正确看到。
如果我第一次单击“是”(或“否”),我会正确: 使用 props.options:
[{
"id": "602b883a53c89933b8238339",
"name": "Yes",
"sel": true,
"value": null
},
{
"id": "602b883a53c89933b823833a",
"name": "No",
"sel": false,
"value": null
}]
接下来,如果我检查否(或是)我有这个: 使用 props.options:
[{
"id": "602b883a53c89933b8238339",
"name": "Yes",
"sel": false,
"value": null
},
{
"id": "602b883a53c89933b823833a",
"name": "No",
"sel": true,
"value": null
}]
为什么收音机无法正确渲染?
编辑:我发现这种行为:第一个打开按钮(未选中)有边框宽度:2px
解决方案
推荐阅读
- datatables - 在 dataTable 的自定义选择框中传递数据
- python - 找不到页面 (404) 请求方法:GET 请求 URL:http://127.0.0.1:8000/hello 仅定义了 admin/ 路径
- mysql - 如何从多个 SELECT 语句构建用户表?
- xml - XML:以最佳方式定义变量
- unit-testing - 如何模拟 EasyExcel.create(),一个使用 mockito 的静态方法
- php - 如何验证一串数字和逗号,但不是字母字符
- python - 使用 np.newaxis 将二维数组转换为一维数组
- python - 如何使用索引从列表中返回一系列元素或数组?
- javascript - 如何使用来自 Axios GET 的 Vue 语法渲染 HTML 字符串?
- python - csv.writer 比 to_csv 快得多吗?