MobX ReactJS AntD 更新不会重新渲染

MobX ReactJS AntD updates won't re-render

所以我正在尝试使用 ReactJS 和 MobX 更改 AntD Table 中的一些 table 数据。我的 MobX observable 中的数据发生了变化,但是 table 不会重新呈现更新,直到我说....调整页面大小并且 table 重新呈现。我在 CodeSandbox 上重新创建了我的问题 - 它不是确切的数据类型,但这是我 运行 遇到的确切问题,有什么想法吗???

https://codesandbox.io/s/remove-items-from-mobx-array-forked-3nybr?file=/index.js

  @action
  change = (key) => {
    this.data
      .filter(item => key === item.key)
      .forEach(piece => {
        piece.key = 10;
      });
    console.log(this.data);
  };
const FooTable = () => {
  const columns = [
    {
      title: "ID",
      dataIndex: "key"
    },
    {
      title: "Name",
      dataIndex: "name"
    },
    {
      title: "Last Name",
      dataIndex: "lastName"
    },
    {
      title: "Actions",
      render: (text, record) => {
        return (
          <Button
            type="link"
            icon="delete"
            onClick={() => tableStore.change(record.key)}
          >
            Delete
          </Button>
        );
      }
    }
  ];
  return useObserver(() => {
    return <Table columns={columns} dataSource={tableStore.data} />;
  });
};

因为 AntD Table 本身不是观察者,所以在将数据传递给 AntD 之前,您需要对数据使用 toJS

import { toJS } from "mobx";

// ...

const FooTable = () => {
  const columns = [ ... ];

  return useObserver(() => {
    return <Table columns={columns} dataSource={toJS(tableStore.data)} />;
  });
};