我的react应用程序使用上下文,可以从另一个组件更改其状态。这是路线设置
<Router>
<NavBar />
<Switch>
<PostsProvider>
<Route exact path='/posts'>
<Posts />
</Route>{" "}
<Route exact path='/stats'>
<Stats />
</Route>
</PostsProvider>
</Switch>
</Router>
并且将上下文设置为仅在发生这种情况时重做事情
const [loadPosts, setLoadPosts] = useState(true);
useEffect(
function () {
fetchPosts();
},
[loadPosts]
);
loadpost是从posts
组件更改而来的,但是很奇怪的是,stats
组件每次在路由更改时都会重新渲染,尽管这样每个子组件的useEffect中都有一个空数组>
useEffect(function () {
fetchData();
}, []);
并且导航链接用Link
包装
为什么会出现这种情况?我可以预防吗?