Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/xml/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Vue.js Apollo数据对象在发生突变后为空_Vue.js_Graphql_Apollo - Fatal编程技术网

Vue.js Apollo数据对象在发生突变后为空

Vue.js Apollo数据对象在发生突变后为空,vue.js,graphql,apollo,Vue.js,Graphql,Apollo,我目前正在使用apollo对我的项目进行传输(添加用户),当响应“我的对象数据”为空时。你知道为什么吗 这是我的模式类型 type UserKyrios { _id: ObjectId! firstname: String! lastname: String! email: String! password: String! creationDate: Date } `; 这是我的输入类型 input UserKyriosInput

我目前正在使用apollo对我的项目进行传输(添加用户),当响应“我的对象数据”为空时。你知道为什么吗

这是我的模式类型

  type UserKyrios {
    _id: ObjectId!
    firstname: String!
    lastname: String!
    email: String!
    password: String!
    creationDate: Date
  }
`;
这是我的输入类型

  input UserKyriosInput {
    firstname: String!
    lastname: String!
    email: String!
    password: String!
  }
`;
定义型突变

  type Mutation {
    upsertUserKyrios(user: UserKyriosInput!): UserKyrios
  }
我的querie突变

mutation UpsertUserKyrios($user: UserKyriosInput!) {
    upsertUserKyrios(user: $user) {
        ...userKyriosFields
        creationDate
    }
  }
我的输出

data: {upsertUserKyrios: null}
upsertUserKyrios: null
我的解析器

upsertUserKyrios: async (_, __, { server }) => server.plugins.mongodb.UserKyrios.insertOne(),
我的脚本组件

<script>
import { UPSERT_USER_KYRIOS } from '../../../../graphql/KyriosMutations';

export default {
  name: 'addUserModalComponent',
  props: {
    dialog: {
      type: Boolean,
      default: false,
    },
  },
  data: () => ({
    user: {
      firstname: '',
      lastname: '',
      email: '',
      password: '',
    },
  }),
  methods: {
    closeDialog() {
      this.$emit('closeModal');
    },
    async submitForm() {
      const userCreated = await this.$apollo.mutate({
        mutation: UPSERT_USER_KYRIOS,
        variables: {
          user: this.user,
        },
      });
      console.log(userCreated);
    },
  },
};
</script>

从“../../../../graphql/KyriosMutations”导入{UPSERT_USER_KYRIOS}”;
导出默认值{
名称:“addUserModalComponent”,
道具:{
对话框:{
类型:布尔型,
默认值:false,
},
},
数据:()=>({
用户:{
名字:'',
姓氏:“”,
电子邮件:“”,
密码:“”,
},
}),
方法:{
closeDialog(){
此.$emit('closeModal');
},
异步提交表单(){
const userCreated=等待这个。$apollo.mutate({
突变:UPSERT_USER_KYRIOS,
变量:{
用户:this.user,
},
});
console.log(userCreated);
},
},
};

您的冲突解决程序似乎缺少信息。解析程序中的第二个参数似乎没有处理来自字段的任何传入数据。而且,一旦这些参数出现,也许我对Mongo的了解还不够,但是您不应该发送数据作为插入到insertOne函数中的对象吗


我们还应该看看您的gql定义是什么样子的

您的冲突解决程序似乎缺少信息。解析程序中的第二个参数似乎没有处理来自字段的任何传入数据。而且,一旦这些参数出现,也许我对Mongo的了解还不够,但是您不应该发送数据作为插入到insertOne函数中的对象吗


我们还应该看看您的gql定义是什么样子的

解析器为您提供有关请求的一些信息:

第一个参数:父级

第二个参数:args=>包含请求负载

3d参数:上下文

第四参数:信息

突变数据存在于您不使用的第二个参数(args)中。 参数将包含一个对象。在您的情况下,
user
使用来自客户端请求的值。($variables)

在客户端: 提交表单时,在veriables对象(UserKyriosInput)中发送所有必要的信息


希望有意义。

冲突解决程序为您提供有关请求的一些信息:

第一个参数:父级

第二个参数:args=>包含请求负载

3d参数:上下文

第四参数:信息

突变数据存在于您不使用的第二个参数(args)中。 参数将包含一个对象。在您的情况下,
user
使用来自客户端请求的值。($variables)

在客户端: 提交表单时,在veriables对象(UserKyriosInput)中发送所有必要的信息


希望有意义。

当发生错误时,数据返回为空。你需要寻找完整的答案。这里可能存在错误

不确定这是从哪里来的。$apollo.mutate提交的,但mutate通常会返回一个承诺


使用它们的一个好方法是使用钩子:

当发生错误时,数据返回为空。你需要寻找完整的答案。这里可能存在错误

不确定这是从哪里来的。$apollo.mutate提交的,但mutate通常会返回一个承诺


使用它们的一个好方法是使用钩子:

我像这样添加了用户变量,但它不能向上运行UserKyrios:async({user},{server})=>server.plugins.mongodb.UserKyrios.insertOne(user),您肯定必须传递某种数据作为第二个参数。它应该像你在那里一样。在解析器中控制台.log(user)来验证数据是否到达了那里,这不是一个坏主意。如果不是,则可能错误地定义了突变。如果您还可以更新您的原始帖子,以包含从“../../../../graphql/KyriosMutations”导入的内容
import{UPSERT\u USER\u KYRIOS}实际上导入会很好。我认为问题在于我的变异声明,因为当我删除解析器时,我得到了相同的东西…这听起来像是我们要得到的。在你的问题中,没有足够的信息来决定去哪里。需要对数据流动的位置进行更多的调试。我添加了这样的用户变量,但它不能向上运行UserKyrios:async({user},{server})=>server.plugins.mongodb.UserKyrios.insertOne(user),您肯定必须传递某种数据作为第二个参数。它应该像你在那里一样。在解析器中控制台.log(user)来验证数据是否到达了那里,这不是一个坏主意。如果不是,则可能错误地定义了突变。如果您还可以更新您的原始帖子,以包含从“../../../../graphql/KyriosMutations”导入的内容
import{UPSERT\u USER\u KYRIOS}实际上导入会很好。我认为问题在于我的变异声明,因为当我删除解析器时,我得到了相同的东西…这听起来像是我们要得到的。在你的问题中,没有足够的信息来决定去哪里。需要对数据流动的位置进行更多的调试。
upsertUserKyrios: async (_, args, { server }) =>
variables: {
  user: {
    firstname: this.user.firstName
    lastname: this.user.lastName
    email: this.user.email
    password: this.user.password
  }
}
variables: {
  user: {
    ...this.user
  }
}