ApollographqluseMutationwouldtriggerthecomponenttore-render。
创始人
2024-09-09 10:00:44
0

在React中使用useMutation的时候,它会触发组件的重新渲染。为了避免这种情况,可以使用useMutation函数的第二个参数options,来手动控制是否重新渲染。

示例代码:

import React from 'react';
import { useMutation } from '@apollo/client';
import { ADD_TODO_MUTATION } from '../queries';

const AddTodo = () => {
  const [todo, setTodo] = React.useState('');
  const [addTodo, { loading, error }] = useMutation(ADD_TODO_MUTATION, {
    variables: { todo },
    update(cache, { data: { addTodo } }) {
      cache.modify({
        fields: {
          todos(existingTodos = []) {
            const newTodoRef = cache.writeFragment({
              data: addTodo,
              fragment: gql`
                fragment NewTodo on Todo {
                  id
                  text
                  completed
                }
              `
            });
            return [...existingTodos, newTodoRef];
          }
        }
      });
    },
    onError(error) {
      console.log(error);
    }
  });

  const handleAddTodo = () => {
    addTodo();
    setTodo('');
  };

  return (
    
setTodo(e.target.value)} />
); }; export default AddTodo;

在上面的示例中,我们在options参数中定义了onError和update函数来处理错误和更新缓存。如果您不需要更新缓存,请删除update函数。

相关内容

热门资讯

五分钟了解!西元红河棋牌有没有... 五分钟了解!西元红河棋牌有没有挂,双喜大厅辅助,黑科技教程(有挂攻略)1、任何西元红河棋牌有没有挂a...
六分钟了解!陕麻圈捉老麻子是不... 六分钟了解!陕麻圈捉老麻子是不是可以,熊猫麻将跑得快有挂没,2025新版(有挂揭秘);1)陕麻圈捉老...
9分钟了解!至友互娱是不是有外... 9分钟了解!至友互娱是不是有外 挂,jj跑得快,德州论坛(有挂解密)1、下载好至友互娱是不是有外 挂...
三分钟了解!大唐河北麻将有挂吗... 三分钟了解!大唐河北麻将有挂吗,微信jj斗地主有挂吗,教你攻略(有挂辅助挂)1、让任何用户在无需大唐...
2分钟了解!壹起跑得快吗,陕麻... 2分钟了解!壹起跑得快吗,陕麻圈外挂,介绍教程(有挂插件)1、很好的工具软件,可以解锁游戏的壹起跑得...
十分钟了解!朋朋棋牌怎么拿好牌... 十分钟了解!朋朋棋牌怎么拿好牌,福建众娱软件辅助去哪里买,教你攻略(有挂秘笈);1、操作简单,无需注...
9分钟了解!经典联盟辅助器,家... 9分钟了解!经典联盟辅助器,家家乐牌吧吗,专业教程(有挂技巧)1、经典联盟辅助器透视辅助简单,经典联...
1分钟了解!微乐广西麻将跑得快... 1分钟了解!微乐广西麻将跑得快有挂的吗,瑞星游戏有挂吗,透明挂教程(有挂详情)1、不需要AI权限,帮...
两分钟了解!家家乐牌吧辅助,福... 两分钟了解!家家乐牌吧辅助,福建天天开心王国辅助器,分享教程(有挂秘笈)亲,关键说明,福建天天开心王...
三分钟了解!天天贵阳麻将助赢神... 三分钟了解!天天贵阳麻将助赢神器,辽宁心悦麻将有挂吗,解密教程(有挂教学)天天贵阳麻将助赢神器软件透...