Когда fetchPolicy имеет значение «только для сети», данные извлекаются с несоответствием

#javascript #reactjs #graphql

#javascript #reactjs #graphql

Вопрос:

У меня есть компонент «форма», который отображает данные, которые возвращаются из использования (GraphQL). Смотрите ниже:

   <StyledContainer>
    <formiForm type="warning" />
    <formiForm type="info" />
  </StyledContainer>
  

Файл ‘formiForm’ содержит запрос GET для получения данных:

 const { queryData = {}, error, isFetching } = useQuery({
id: 'formData',
fetchPolicy: 'network-only',
query: GET_DATA,
variables: { id, type }
});
  

Они используют один и тот же запрос, но с другим значением «типа» (выполняют 2 запроса GET).

Ожидаемое поведение: я хочу иметь возможность просматривать 2 разные формы с 2 разными данными.

Фактическое поведение: получение 2 форм с одинаковыми данными, данные меняются от обновления к обновлению.

Я использую: fetchPolicy: 'network-only' Для возможности изменения этих данных при внесении изменений внутри формы. Когда я использовал с: fetchPolicy: 'no-cache' Данные были обработаны нормально, но не смогли увидеть изменения внутри формы после сохранения изменений.

Как я могу с этим справиться? Как я могу отобразить все данные внутри формы при использовании «fetchPolicy» только для сети?

Спасибо.

Ответ №1:

Мне нужно было добавить «Id» внутри запроса GraphQL, чтобы унифицировать каждый рендеринг.