我的状态中存储了一堆信息,我需要使用突变将其传递到我的 graphQL 服务器,但我需要在调用下一个突变之前使用每个突变的结果,因为我需要:
- 在我的数据库中创建一个新对象
- 使用为该对象生成的 id 创建另一个对象
- 修改原对象,存储第二个对象生成的id
我注意到 apollo Mutation 组件有一个 onCompleted 回调,但我不知道如何使用此回调来触发另一个突变,也不知道这是否是解决我的问题的正确方法。我还考虑过批量发送我的突变以一次发送所有突变,但这似乎也不是解决方案。任何帮助,将不胜感激
正如您所提到的,解决该问题的独特方法是对所有突变进行批处理,请查看问题相关!
实际上,编写它们并没有那么糟糕,你可以这样做:
const handleClick = async (mutation1Fn, mutation2Fn, mutation3Fn) => {
const data1 = await mutation1Fn()
const data2 = await mutation2Fn()
const data3 = await mutation3Fn()
}
const Mutations = () => (
<Composer
components={[
<Mutation mutation={mutation1} />,
<Mutation mutation={mutation2} />,
<Mutation mutation={mutation3} />
]}
>
{([mutation1Fn, mutation2Fn, mutation3Fn]) => (
<button
onClick={() => handleClick(mutation1Fn, mutation2Fn, mutation3Fn)}
>
exec!
</button>
)}
</Composer>
)
如果您遇到困难,请告诉我!
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)