ApollouseQuery不总是触发函数组件的重新渲染
创始人
2024-09-09 13:30:25
0

使用Apollo的 useQuery 钩子时,有时候我们会发现当数据未改变时,函数组件不会重新渲染。这是因为 Apollo 在默认情况下使用了浅比较来判断查询结果是否发生变化,当它不能检测到数据的变化时,就不能触发重新渲染。

为了解决这个问题,我们可以使用 useQuery 的一个选项:options.fetchPolicy。这个选项定义了数据更新的策略,在其中设置为 options.fetchPolicy = 'network-only' 可以让 Apollo 忽略缓存并从服务器重新获取数据,即使数据没有改变也会触发重新渲染。

以下是一个示例代码:

import React from 'react';
import { useQuery } from '@apollo/react-hooks';
import gql from 'graphql-tag';

const GET_USERS = gql`
  query getUsers {
    users {
      id
      name
    }
  }
`;

function UsersList() {
  const { loading, error, data } = useQuery(GET_USERS, {
    fetchPolicy: 'network-only',
  });

  if (loading) return 

Loading...

; if (error) return

Error :(

; return (
    {data.users.map(user => (
  • {user.name}
  • ))}
); } export default UsersList;

相关内容

热门资讯

最新研发(红龙扑克作假)外挂透... WePoker透视辅助工具核心要点解析‌,最新研发(红龙扑克作假)外挂透明挂辅助机制(辅助挂)德州a...
7分钟了解(德扑之星概率)外挂... 7分钟了解(德扑之星概率)外挂透明挂辅助工具(透视)竟然是真的有挂(2024已更新)(哔哩哔哩)1、...
新手必备(wpk长期)外挂透明... WePoke高级策略深度解析‌;新手必备(wpk长期)外挂透明挂辅助挂(透视)透视辅助(有挂方略)-...
辅助透视!wpk程序(wEpO... WePoker透视辅助版本解析‌,辅助透视!wpk程序(wEpOke)外挂透明挂辅助机制(透视)20...
8分钟了解(微扑克总结)外挂透... 8分钟了解(微扑克总结)外挂透明挂辅助挂(透视)透视辅助(有挂细节)-哔哩哔哩;小薇(透视辅助)致您...
透视最新(WPK程序)外挂透明... WePoker透视辅助版本稳定性对比与推荐‌:透视最新(WPK程序)外挂透明挂辅助工具(透视)原来真...
一分钟了解(德扑线上创建房间)... 一分钟了解(德扑线上创建房间)外挂透明挂辅助app(透视)透视辅助(真的有挂)-哔哩哔哩;超受欢迎的...
专业讨论!Wepoke专用(w... 专业讨论!Wepoke专用(wePoKe)外挂透明挂辅助脚本(透视)透明挂教程(有挂详细)-哔哩哔哩...
实测发现(微扑克安卓版本)外挂... 实测发现(微扑克安卓版本)外挂透明挂辅助挂(辅助挂)德州ai机器人(有挂教学)-哔哩哔哩;亲们利用一...
必备攻略(Wepoke科技)外... 必备攻略(Wepoke科技)外挂透明挂辅助工具(透视)的确是真的有挂(2025已更新)(哔哩哔哩);...