我使用的是"react-table"; "该表的数据正在使用useSelector从redux中获取。但是它总是使用之前的状态,而不是更新后的状态。
const { structuredEmi } = useSelector((state) => state.form)
{
structuredEmi
<IntrestBasisTable headerData dataa={structuredEmi}/>
}
github gist for interest basis table:
https://gist.github.com/rohit - rai - 0101 rm/ccfb0209b2696cb4dc9feafdc77efdab
您是否在代码中使用useMemo
?像这样->const data = useMemo(() => dataa, []);
如果是,我们试着删除useMemo。
Hai Huynh Ngoc正确地指出,这是由于使用useMemo
钩子与一个空列表,这意味着你的data
变量永远不会更新一旦最初设置。
虽然删除useMemo
钩子将解决您的问题,但不建议使用将参数传递给react-table的useTable
钩子时。这样做可能会降低效率,因为useTable
将在组件的每个渲染上运行其底层代码,而不管底层数据是否已更改。
推荐解决方案一个更有效的解决方案是将dataa
变量包含在传递给useMemo
调用的依赖项数组中,从而在dataa
更改时正确更新。
const data = useMemo(() => dataa, [dataa]);
查看React官方文档获取更多信息。