reactjs - 为更新 GraphQL Apollo 中的表制作正确的架构和解析器
问题描述
我正在尝试更新 Postgres 数据库的两个字段:
const update_din_times_for_rep = gql`
mutation update_din_times_for_rep(
$id: Int!
$name: String
$val: String
) {
update_din_times_for_rep(id: $id, name: $name, val: $val) {
id
}
}
`;
下一个:
const [data_din_times_for_rep, { loading:loadingMutation, error:errorMutation }] = useMutation(update_din_times_for_rep);
和处理程序:
let handlerMutation = () => {
data_din_times_for_rep({ variables: { id } });
}
<Button onClick={handlerMutation}>Test!</Button>
似乎resolvers.js中的错误,但尝试了很多,没有结果:
update_din_times_for_rep: (parent, args) => {
const mytmp = {
id: args.id,
name: args.name,
val: args.val,
}
return Time_windows
}
如何使解析器尽可能简单?现在唯一的解析器部分对我来说很困难,请任何建议?解析器是由另一个人编写的,我需要根据我的情况对其进行修改。
更新。 如何更改resolver.js以便将数据写入数据库?我做了一个修改:
update_din_times_for_rep: (parent, args) => {
const mytmp = {
id: args.id,
name: args.name,
val: args.val,
}
return Time_windows
}
但我不明白下一步该做什么,我试着按照网上找到的几个例子。他们中的大多数只使用数组或对象,或者磁盘上的平面 db 文件。没有任何示例清楚地显示如何将真实 postgres 数据库的突变处理为 react->resolver-schema-tables-update db。
就我而言,我确实正确地做出了反应-> 模式表。但不是解析器部分。我的模式在类型 Query 和类型 Mutation 部分中声明为查询和变异:
type Time_windows {
id: Bigint
name: String
val: String
}
解决方案
经过多次尝试,我发现了一个最小的工作代码:
update_din_times_for_rep: async (parent, args) => {
const mytmp = { id: args.id,
name: args.name,
val: args.val,
}
await client.query(`insert into din_times_for_rep (id,val) values ('${mytmp.id}','${mytmp.name}')`);
}
如果有人添加评论或改进会很好。
推荐阅读
- android - 如何在 App 内的 Android WebView 中设置标志?
- mongodb - mongdb 中的聚合 addFields 和 not_In 出错
- python - 是否有用于 ANOVA 事后分析的 Games-Howell 多重比较的 python 包?
- firebase - 如何在 firebase 中使用 Cloud Functions 更新使用 Cloud Firestore 中的数据填充的 UI 元素?
- kubeflow-pipelines - 如何使用 Kubeflow Pipelines API 进行身份验证
- php - 我想在 Laravel 集合中返回一些键和值
- javascript - handlebarsjs 通过数字 id 访问上下文
- c++ - (C++) 中断;并返回;不适用于我的 for() 函数
- boolean-logic - 表达式 !A + (A . !B) = !(AB) 如何?
- php - 如何在搜索结果 Wordpress 中启用 TablePress 内容