我正在使用antd + dva制作带有表的网页。表列之一是无线电组。当我单击单选按钮时。页面不会改变。这是示例:
### components/eg.js ###
# handle
function changeLevel(event, line) {
let v = event.target.value;
dispatch({
type: 'eg/update_level',
payload: {
radio_v: v,
shard_name: line.shard_name,
server: line.server,
},
});
}
# table format
const shards_colums= [
{
title: 'Level',
dataIndex: 'level',
key: 'level',
render: (v, line, index) => {
return <Radio.Group onChange={(e) => changeLevel(e, line)} value={line.level}>
<Radio value={0}>0</Radio>
<Radio value={1}>1</Radio>
<Radio value={2}>2</Radio>
</Radio.Group>;
},
},
]
# table
<Table
columns={shards_columns}
dataSource={config}
pagination={false}
bordered
/>
### models/eg.js ###
update_level(state, { payload: { radio_v, shard_name, server } }) {
if (shard_name.indexOf('config') !== -1) {
for (let index = 0; index < state.config.length; index++) {
if (state.config[index].server === server) {
state.config[index].level = radio_v;
}
}
return { ...state };
}
},
“ eg / update_level”将对该状态执行一些简单的操作,并且该状态已通过console.log()进行了更改。但是页面不会刷新,直到发生其他事件(例如更改某些Input)。我是前端呼叫流的新手。有人可以帮忙解释原因吗?