"mobx-реагировать": "^ 5.3.6", "реагировать": "^ 16.6.3", "antd": "^ 3.10.3",
я использую mobx-реагировать, наблюдать объект-список. Значение в списке было изменено, но страница не перерисовывалась
структура данных
список = [{id: 1 статус: 1, ...}]
работал
this.items.replace(this.items);
не работал
@observable.deep items = [];
@observer
class TableList extends Component {
@observable items = [];//my list
...
toggleOnline(data) {
const { id, status } = data;
const temp_status = status == 2 ? 1 : 2;
ajax.post('page/switch', {
id, status: temp_status
}).then(action(() => {
data.status = temp_status;
message.success('操作成功');
})).catch(err => {
message.error(err);
});
}
render(){
return
...
<aonClick={this.toggleOnline.bind(this, record)}>{record.status == 2 || record.status == -1 ? '启用' : '停用'}</a>
...
<Table
rowKey="id"
loading={loading}
dataSource={this.items.toJS()}
columns={this.columns}
onChange={this.handleStandardTableChange}
/>
}
}