Совместное использование GraphQL / Apollo локальных и извлеченных данных в несвязанных компонентах React (с помощью хуков) - PullRequest
1 голос
/ 03 апреля 2020

Да, есть и другие похожие вопросы, которые я задавал, и просто не могу прийти к последовательному и четкому ответу. Возможно, кто-то может дать ответ solid для Stack Overflow и меня. Я думаю, что это фундаментально и должно быть более четко указано в документах. Я пытаюсь уйти от стратегии централизованного хранилища данных и пытаюсь найти здесь asp концепции. В то время как Apollo делает много полезных вещей, он кажется менее полным, чем центральное хранилище, в отношении обмена данными с деревом.

Если я запрашиваю данные в одном компоненте, как мне получить доступ к этим данным в неродственный компонент?

Это правильный способ сделать это?

const queries = {
    GET_BOOKS: gql`
        {
            AllBooks: book {
                id
                title
            }
        }
    `
}

const BookList = () => { 

    const allBooks = useQuery(queries.GET_BOOKS);

    return (
        <>
            {
                !allBooks.loading 
                && allBooks.diata 
                && allBooks.data.map((book, n) => <Book key={n} data={book} />)
            }
        </>
    );
};

const BookCounter = () => {

    const allBooks = useQuery(queries.GET_BOOKS);

    return (
        <div>
            {
                !allBooks.loading 
                && allBooks.data 
                && allBooks.data.length
            }
        </div>
    )
}
...