首页 > 解决方案 > 为什么当组件查询更新时父查询不更新?

问题描述

在我的应用程序(session.isLoading)中更新一个变量时,一个useQuery更新实例,但在父级中找到的一个没有。

// NOTHING UPDATES on session.isLoading update
function App({ apolloClient, resetStoreToDefault }) {
    const { loading, error, data } = useQuery(GET_CURRENT_SESSION);

    // Handle Query Return
    if (loading) return null;
    if (error) console.log('error', error);
    const { session } = data;
    console.log('app session', session); 

    return (
        <Router history={history}>
            ...
            <Authentication/>
            ...
        </Router>
    );
}


// UPDATES on session.isLoading update
function Authentication(props) {
    const { loading, error, data } = useQuery(INITIALIZE_AUTHENTICATION_PAGE);

    // Handle Query Return
    if (loading) return <p>Loading ...</p>;
    if (error) console.log('error', error);
    const { authenticationFields, session } = data;
    console.log('auth session', session);

    updateSessionLoading({ variables: { loading: true } });

    return (
        ...
    );
}

useQuery期望:更新data时更新的所有实例cache.session

标签: react-apolloapollo-client

解决方案


推荐阅读