reactjs - React Hooks - useMutation 被调用 50 多次
问题描述
基本上我有这个组件,它有 3 个嵌套的 Query 组件,我想根据这些查询之一是否带回数据来调用我的突变之一。
我想在 Query 组件中调用一个突变,但是我发现我的突变不断更新导致组件多次渲染的状态。本质上,它正在执行我的突变 50 多次。我想我误解了反应钩子以及它们是如何工作的。
示例代码:
import MyMutation from 'mutations/MyMutation.graphql'
const myComponent = ( {props} ) => {
const [myMutation] = useMutation(MyMutation);
return (
<Query query ={GetUserData} variables={{ input: { id }}}>
{({ data: userData, loading: dataLoading }) => (
<Query query ={GetOtherData} variables={{ input: { id }}}>
{({ data: otherUserData, loading: otherUserDataLoading}) => (
<Query query ={GetOtherOtherData} variables={{ input: { id }}}>
{({ data: otherOtheruserData, loading: otherOtheruserDataLoading }) => {
if (dataLoading || otherUserDataLoading|| otherOtheruserDataLoading ) {
return null;
}
if (userData) {
myMutation({ variables: { input: { id, userData.updatedValue } } }).catch(() => {});
}
解决方案
推荐阅读
- python - Python Tkinter:不使用 IDLE 时图像质量下降
- feathersjs - 我想让feathersjs在127.0.0.1(而不是0.0.0.0)上监听
- node.js - 如何使用节点 js ejs 在 mongodb 集合中显示选定的复选框
- python - 在字典Python中搜索值的一部分
- reactjs - 如何在firebase数据库实时反应中单击按钮时更新特定节点中的客户端状态
- spring-mvc - 从支付网关成功重定向后,用户在 Spring Boot 中注销
- java - 游标计数为零尽管数据存在于带有 Android 的 SQLite 中
- excel - 有没有办法在空格前组合 2 个字符?
- java - Java不同情况划分
- python - 如何创建 Y 轴不明确的堆叠条形图/猫形图?