更新graphQL阿波罗突变中的多个值

时间:2020-06-30 07:31:09

标签: reactjs graphql react-apollo typeorm

我正在尝试从前端(React + Apollo graphql)更新后端用户(typeorm后端)

我正在定义一个更新用户的变异,该变异称为//AMCHART OFFICIAL DOCUMENTATION: https://www.amcharts.com/docs/v4/tutorials/one-pulled-slice-per-pie-chart/#Solution pieSeries.slices.template.events.on("hit", function(ev){ console.log(ev.target.dataItem.value) });

UserUpdateInput
  @Mutation(() => Boolean)
  async updateUser(
    @Arg("user_id", () => Int) user_id: number,
    @Arg("input", () => UserUpdateInput) input: UserUpdateInput
  ) {
    await User.update({ user_id }, input);
    return true;
  }

我的突变(从服务器端)起作用并更新我的数据库

@InputType()
class UserUpdateInput {
  @Field(() => String, { nullable: true })
  firstName?: string;

  @Field(() => String, { nullable: true })
  lastName?: string;
}

我已经尝试过通过前端进行更新,但是我不确定如何将多个值传递到输入对象中

UpdateUser.tsx

mutation {
  updateUser(user_id: 5
  input: {
    firstName: "joe",
    lastName: "Flink"
  })
}

任何帮助/指导将不胜感激。谢谢!

1 个答案:

答案 0 :(得分:0)

这是使用突变钩子的方法-

const [updateUser, { data }] = useMutation(UPDATE_USER)l;

使用该组件从任何地方调用updateUser并传递这样的变量-

updateUser({ variables: { firstName:firstName, lastName:lastName, user_id:userId } });

现在在变异查询中传递这样的变量-

const UPDATE_USER = gql`
    mutation updateUser(
        $id: ID!
        $firstName: String!
        $lastName: String!
    ) {
        updateUser(
            user: {
                id: $id
                firstName: $firstName
                lastName: $lastName
               
            }
        ) {
            id
            firstName
            lastName
            
        }
    }
`;