React-Router嵌套路由重新渲染

时间:2020-05-03 15:59:17

标签: javascript reactjs react-router use-effect rerender

我的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包装 为什么会出现这种情况?我可以预防吗?

0 个答案:

没有答案