动态更改反应表中的数据

问题描述 投票:0回答:2

我正在使用“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

reactjs redux react-table
2个回答
1
投票

Hai Huynh Ngoc 正确地指出,这是由于使用了带有空列表的

useMemo
钩子,这意味着你的
data
变量一旦初始设置就永远不会更新。

虽然删除

useMemo
钩子可以解决您的问题,但在将参数传递给 React-table 的 useTable 钩子时,
不建议
这样做。这样做可能效率低下,因为
useTable
将在组件的每次重新渲染时运行其底层代码,无论底层数据是否已更改。

推荐解决方案

更有效的解决方案是将

dataa
变量包含在传递给
useMemo
调用的依赖项数组中,从而在
dataa
发生更改时正确更新。它还将导致调用 fetch 函数,您需要根据数据大小来考虑该函数。

您提供的要点的第 55 行应为

const data = useMemo(() => dataa, [dataa]);

请参阅React官方文档了解更多信息。


0
投票

您在代码中使用

useMemo
吗? 像这样 ->
const data = useMemo(() => dataa, []);

如果是,我们尝试删除 useMemo。

© www.soinside.com 2019 - 2024. All rights reserved.