动态更新列 Headers React-Table v7
update Column Headers dynamically React-Table v7
我需要动态更新列 headers 的帮助,因为我们在 useTable 挂钩中传递列列表,对于一个用例需要更新列 headers 列表,但我看不到新添加的列。
我尝试通过创建自定义挂钩覆盖 allColumns 实例对象。
PFA codesandbox 示例 - 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>
);
}
Usetable Hooks 使用 UseMemo 来实现具有列依赖性的 Memoization,在我的例子中,我只改变相同的引用数组列,并且 usememo 找到它的相等,因此不更新 table 中的列。
解决方案 1
将列传递给 table 时克隆的列副本。
方案二
使用状态中的列,然后在超时后更新。
参考-https://www.digitalocean.com/community/tutorials/react-usememo
我需要动态更新列 headers 的帮助,因为我们在 useTable 挂钩中传递列列表,对于一个用例需要更新列 headers 列表,但我看不到新添加的列。
我尝试通过创建自定义挂钩覆盖 allColumns 实例对象。
PFA codesandbox 示例 - 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>
);
}
Usetable Hooks 使用 UseMemo 来实现具有列依赖性的 Memoization,在我的例子中,我只改变相同的引用数组列,并且 usememo 找到它的相等,因此不更新 table 中的列。
解决方案 1 将列传递给 table 时克隆的列副本。
方案二 使用状态中的列,然后在超时后更新。
参考-https://www.digitalocean.com/community/tutorials/react-usememo