我正在使用“react-table”:“^7.8.0” 该表的数据是使用 useSelector 从 redux 获取的。 但它总是采用以前的状态而不是更新后的状态。
const { structuredEmi } = useSelector((state) => state.form)
{
structuredEmi
<IntrestBasisTable headerData dataa={structuredEmi}/>
}
github 利息基础表要点:
https://gist.github.com/rohit-rai-0101rm/ccfb0209b2696cb4dc9feafdc77efdab
Hai Huynh Ngoc 正确地指出,这是由于使用了带有空列表的
useMemo
钩子,这意味着你的 data
变量一旦初始设置就永远不会更新。
虽然删除
useMemo
钩子可以解决您的问题,但在将参数传递给 React-table 的 useTable
钩子时,不建议这样做。这样做可能效率低下,因为
useTable
将在组件的每次重新渲染时运行其底层代码,无论底层数据是否已更改。
更有效的解决方案是将
dataa
变量包含在传递给 useMemo
调用的依赖项数组中,从而在 dataa
发生更改时正确更新。它还将导致调用 fetch 函数,您需要根据数据大小来考虑该函数。
您提供的要点的第 55 行应为
const data = useMemo(() => dataa, [dataa]);
请参阅React官方文档了解更多信息。
您在代码中使用
useMemo
吗?
像这样 -> const data = useMemo(() => dataa, []);
如果是,我们尝试删除 useMemo。