为什么组件查询执行时父查询不更新?

时间:2019-11-04 03:06:02

标签: react-apollo apollo-client

在我的应用程序中更新一个变量时(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

0 个答案:

没有答案