Я использую 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 (). Но страница не будет обновляться до тех пор, пока не произойдет другое событие (например, изменение некоторого Ввода). Я новичок в потоковом вызове внешнего интерфейса. Может кто-нибудь помочь объяснить, почему?