如何在 SPFx 中使用 React 钩子强制从孙组件刷新祖父组件



在 SPFx Web 部件的主要组件中,我有一个在 React.useEffect 中运行的数据加载

const [jobsGets, setJobsGets] = React.useState(0);
React.useEffect(() => {
{Some code to get data from SharePoint}
});
}, [jobsGets]);

因此,当"jobsGets"的值发生变化时,就会发生刷新,对吗?

此组件调用另一个组件,最后一个组件具有应通过更改"jobsGets"刷新的事件。 如果我写一个幻想,把它传给每一代组件的道具,

它永远结束在主组件中运行。所以这不是一个好的解决方案。 如何从孙子组件setJobsGets(jobsGets+1);

欢迎任何提示。 谢谢

您可能正在使用useEffect更新 grandChild 的作业,该作业在装载和每次更新上运行。 如果[]参数传递第二个空数组,则此更新将仅在首次渲染后运行(如果这是您的具体情况(,避免重新触发:

// at some granchild
useEffect(() => { ...logic here }, [])

如果 useEffect 应该在特定参数的更新之后运行,则将该参数作为参数传递给数组。 useEffect 将仅在对[]上设置的参数依赖项的更改上运行。

useEffect(() => { ...logic here }, [param])

你也可以看看 useContext 在深树上更好地传递状态。

相关内容

  • 没有找到相关文章

最新更新