程序问答   发布时间:2022-06-01  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了缺少对象GraphQL + Apollo错误的选择集大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。

如何解决缺少对象GraphQL + Apollo错误的选择集?

开发过程中遇到缺少对象GraphQL + Apollo错误的选择集的问题如何解决?下面主要结合日常开发的经验,给出你关于缺少对象GraphQL + Apollo错误的选择集的解决方法建议,希望对你解决缺少对象GraphQL + Apollo错误的选择集有所启发或帮助;

事实证明,此修复程序通过将dialog字段视为字符串而不是对象来工作。将函数更改为此可以解决问题,并消除错误:

  openDialog: (_, variables, { cache }) => {
    const data = {
      popups: {
        ...popups,
        dialog: variables.type
      }
    };

    cache.writeData({
      data: data
    });
    return null;
  }

解决方法

我有一组突变,可以触发某些类型的弹出窗口的局部状态。它们通常是这样设置的:

  openDialog: (_,variables,{ cache }) => {
    const data = {
      popups: {
        ...popups,dialog: {
          id: 'dialog',__typename: 'Dialog',type: variables.type
        }
      }
    };

    cache.writeData({
      data: data
    });
    return null;
  }

我传入的默认值如下所示:

const defaults = {
  popups: {
    __typename: TYPENAMES.POPUPS,id,message: null,modal: null,menu: null,dialog: null
  }
};

在我的React代码中使用它们的方式是使用Mutation包装器组件,如下所示:

const OPEN_ALERT_FORM = gql`
  mutation AlertOpenDialog($type: String!) {
    openDialog(type: $type) @client
  }
`;

class Alert extends Component {
  render() {
    return (
      <Mutation mutation={OPEN_ALERT_FORM} variables={{ type: ALERT_FORM }}>
        {openDialog => {
          return (
            <Button
              classes="alert-button"
              onClick={openDialog}
              label="Trigger Alert"
            />
          );
        }}
      </Mutation>
    );
  }
}

对于我的各种弹出窗口(我有3或4个不同的弹出窗口,如menumodal),打开和关闭它们的突变看起来都一样,只是类型名称和内容不同。但是,对于对话框,单击它们时会出现此错误:

网络错误:为查询字段对话框返回的对话框类型为Dialog的对象缺少选择集

…然后触发组件从页面中消失。另外,一旦发生这种情况,当您尝试单击其他所有弹出窗口类型时,它们都会消失,然后重新引发该错误,或​​者说:

未捕获的错误:引发了跨域错误。 React不能访问开发中的实际错误对象。

我尝试重新编写对话框以与其他弹出窗口类型匹配,并重新编写组件,但是仍然出现此错误。它似乎确实是dialog +
Apollo特有的。这个问题的根源可能是什么?它不可能是后端的东西,因为这只处理本地的Apollo。我之前从未见过此错误,也不确定从这里出发。

大佬总结

以上是大佬教程为你收集整理的缺少对象GraphQL + Apollo错误的选择集全部内容,希望文章能够帮你解决缺少对象GraphQL + Apollo错误的选择集所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。
标签: