我有一个包含记录列表的数据表样式表,需要更新它们的值。我想运行一个提交,并在我的 GraphQL 中将一组记录作为单个参数发送给集合查询。它们实际上是 MongoDB 文档。如标题所示,我将 React 与 Apollo 客户端一起使用。先感谢您 :)
更多详情如下
所以我在服务器端有这个突变,它适用于 Playground。然而,它在 Apollo 客户端出现错误。
mutation { updateWorklogs( input: [ { id: "60c6b", week1: 1, week2: 2, week4: 9 }, { id: "60c6c", week1: 3, week2: 4, week4: 1.5 } ] ) { id year month name } }
Apollo 客户端工具将变异变量正确显示为
但是在 Apollo 客户端工具中,当我尝试运行查询时,它显示为 {“input”:[{“id”:“60c6b9ca277c815ec200992a”,“week1”:5,“week2”:2,“week3”:0,“ week4”:9},{“id”:“60c6ba80277c815ec200992e”,“week1”:0,“week2”:5,“week3”:0,“week4”:0}]}
我想这很好。这应该可以工作,因为它与我在 Playground 中运行的相同,但不是!
我试图运行 JSON.parse(myVariables) 但没有帮助。阿波罗似乎改变了它。最终结果查询没有运行。它返回 400 响应,仅此而已。如果我需要一个接口,我没有使用 TS,还不知道如何在 React JS 中实现。
const [setWorklog] = useMutation(SET_WORKLOGS);
const handleSubmit = (event) => {
event.preventDefault();
console.log("state=", state) // returns the above state, which is correct
setWorklog({ variables: { input: state }, update(proxy, result) {
const data = proxy.readQuery({
query: GET_WORKLOGS
})
data.userWorklogs = result.data.setWorklogs;
proxy.writeQuery({ query: GET_WORKLOGS, data });
}}).then(
console.log("returned=",data.updateWorklogs)
)
.catch(e => {
console.log("Error=", e);
})
};
再次感谢