データがreact-apollo
によって提供されているページに再度アクセスしたときに、新しいデータをrefetch
する方法は?
たとえば、私は初めてリストページにアクセスします。 apollo
はクエリをフェッチし、デフォルトでキャッシュします。そのため、セッション中に同じページに再度アクセスすると、キャッシュストアからデータが入力されます。コンポーネントがマウントされるたびにapollo
にデータを再フェッチさせるにはどうすればよいですか?
apollo
の- fetchPolicy を使用できます。これに基づいて、クエリを実行するかどうかを決定しますもう一度。
例:
const graphQLOptions = {
name: 'g_schemas',
options: (props) => {
return {
variables: {
name: props.name,
},
fetchPolicy: 'cache-and-network',
}
},
}
それが役に立てば幸い。
Praneshの答えに加えて:あなたが探しているfetchPolicy
はnetwork-only
。
react-apollo
のクエリコンポーネントを使用している場合、次に例を示します。
import { Query } from "react-apollo";
その小道具を介してfetchPolicyを適用できます。以下の例を参照してください。
import gql from 'graphql-tag';
import React from 'react';
import { Query } from 'react-apollo';
const CounterView = ({ counter }) => (
<div>{counter}</div>
);
const GET_COUNTER = gql`
{
counter
}
`;
const Counter = () => (
<Query query={GET_COUNTER} fetchPolicy={'network-only'}>
{({ data }) => {
return <CounterView {...data} />;
}}
</Query>
);
export default Counter;
参照: