0

我需要帮助动态更新列标题,因为我们在 useTable 挂钩中传递列列表,因为一个用例需要更新列标题列表,但我看不到新添加的列。

我尝试通过创建自定义挂钩来覆盖 allColumns 实例 obj。

PFA 代码框示例 - https://codesandbox.io/s/example-react-table-column-hide-show-5v712?file=/src/App.js

function App() {
 const [state, setState] = React.useState(false);
 setTimeout(() => {
  columns.push({
   Header: "Age",
   accessor: "age"
  });
  setState(true);
}, 5000);
const columns = React.useMemo(
 () => [
  {
    Header: "First Name",
    accessor: "firstName"
  },
  {
    Header: "Last Name",
    accessor: "lastName"
  }
 ],
[]
);
const data = React.useMemo(() => makeData(20), []);

return (
<Styles>
  <Table columns={columns} data={data} />
</Styles>
);
}
4

1 回答 1

0

Usetable Hooks 使用 UseMemo 进行具有列依赖关系的记忆,在我的情况下,我只改变相同的引用数组列,并且 usememo 找到它的 Equal ,因此不更新表中的列。

解决方案 1 在将列传递给 table 时克隆了列的副本。

解决方案 2 使用状态中的列,然后在超时后更新。

参考 - https://www.digitalocean.com/community/tutorials/react-usememo

于 2020-06-10T19:05:40.807 回答