当组件第一次加载时,Reactjs只调用后端API一次



我有两个react功能组件:a( ParentComponentb( ChildComponent:

我从ParrentComponent调用ChildComponent。在我的ChildComponent中,我调用API来获取数据(Let Say Filters common data(,现在每次我从父级调用ChildComponent时,我在ChildComponent中的API都会被调用。然而,我只想第一次调用这些API,然后想使用其他rendor的API响应数据。

我使用过useEffect、useCallback,但似乎我无法使其工作。

如果您使用useEffect调用API,每次调用ChildComponent时都会执行它。相反,如果只想调用API一次,请将API调用移动到ParentComponent,并使用params将响应发送到ChildComponent。

你也可以使用上下文,但我认为在这种情况下这不是必须的。

useEffect(() => {}, [])应仅在第一次渲染时运行。如果这不起作用,您可以始终将fetch放在父组件中,并将数据发送到子组件。通过这种方式,它将只加载一次。

制作一个函数来获取数据并用useCallback包装它,然后在UseEffect中调用此函数并将函数添加到dependencies。它应该只在第一次渲染中运行

useCallback将阻止无限循环

最新更新