Javascript 如何从单个react组件调用多个graphql突变?
目前,我有一个react组件,它需要在不同的按钮上调用来自同一组件的2个突变 我正在使用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 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: ...})
或
您是否正在使用
变异组件?如果是这样,您可以用不同的突变包装多个组件。此链接现在已断开更新,添加了其他选项