我在React应用程序中遇到了Apollo GraphQL的奇怪情况。我正在使用useMutation
钩子来 create 和 update 实体,并且我正在使用钩子返回的{loading, error, data}
结果来显示正确的用户界面。
但是,当使用useMutation
来删除实体时,钩子的 result 对象在突变的整个生命周期中都不会更新。我尝试使用loading
的依赖项数组中的这三个值分别注销error
块内的data
,useEffect
和useEffect
。不走运-突变期间永远不会触发useEffect。似乎专门针对delete突变,结果对象不会更新。同时,删除突变确实可以实现预期的功能:它删除实体并在Chrome的“ DevTools网络”标签中返回数据。
为什么useMutation
结果对象不适用于delete
突变?在没有访问loading
钩子在这种情况下应返回的动态更新useMutation
常量的情况下,显示正确的UI会很棘手。