Javascript 如何从单个react组件调用多个graphql突变?

Javascript 如何从单个react组件调用多个graphql突变?,javascript,reactjs,graphql,react-apollo,apollo-client,Javascript,Reactjs,Graphql,React Apollo,Apollo Client,目前,我有一个react组件,它需要在不同的按钮上调用来自同一组件的2个突变 我正在使用react apollo从react组件与graphql服务器交互 如果我使用this.props.mutate调用单击时突变事件,则没有选项/参数指定要调用的突变 如果我直接使用this.props.mutate({variables:{…})它总是调用导入到文件中的第一个变种。 通过props属性,您可以按命名(addComment,editcoment)prop传递突变/闭包。用一个组件组合查询、多

目前,我有一个react组件,它需要在不同的按钮上调用来自同一组件的2个突变

我正在使用
react apollo
从react组件与graphql服务器交互

如果我使用
this.props.mutate
调用单击时突变事件,则没有选项/参数指定要调用的突变

如果我直接使用
this.props.mutate({variables:{…})
它总是调用导入到文件中的第一个变种。

通过
props
属性,您可以按命名(
addComment
editcoment
)prop传递突变/闭包。用一个组件组合查询、多个突变、重复使用(如果需要)

import { compose, graphql } from "react-apollo";

const XComponent = {
...
}

const XComponentWithMutations =  compose(
    graphql(mutation1, {
    name : 'mutation1'
  }),
    graphql(mutation2, {
    name: 'mutation2'
  })
)(XComponent);
更新:

来自同一项目的其他解决方案:

您可以使用react apollo库中的“compose”函数,使多个变体可在组件内部调用

import { compose, graphql } from "react-apollo";

const XComponent = {
...
}

const XComponentWithMutations =  compose(
    graphql(mutation1, {
    name : 'mutation1'
  }),
    graphql(mutation2, {
    name: 'mutation2'
  })
)(XComponent);
然后在XComponent中,您可以同时调用这两个组件

props.mutation1({variables: ...})


您是否正在使用
变异
组件?如果是这样,您可以用不同的突变包装多个组件。此链接现在已断开更新,添加了其他选项