Радио внутри стола не обновляется. (antd + ova) - PullRequest
0 голосов
/ 06 ноября 2019

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...