我想要做的是通过 AppSync 从 React Native 应用程序发送数据,以便我可以更新 dynamo 表上的用户数据。我可以执行我所有的 CRUD 操作,而不是数据列表。当我尝试时,我收到一个错误,指出我发送的不是有效的 JSON。但是,当我将输入通过 JSON linter 时,我的输入将作为有效的 JSON 传递。
为了尝试解决这个问题,我已将输入流程更改为最简单的流程。最初我是从本地缓存的解析 JSON 字符串中提取我的 JSON。我认为 JSON.parse(obj) 函数可能存在问题。那是站不住脚的。因此,我将所有输入从 JS 对象移到了一个 JSON 中,该 JSON 未预先存储在变量中,而是直接传递给我正在使用的 API(https://aws-amplify.github.io/docs /js/api)。
在这不起作用之后,我想也许我的 GraphQL Schema 对于我发送的对象类型是错误的,但没有发现任何问题。
我在 AppSync 中使用 GraphQL 的架构定义如下:
input CreateUserInput {
email: String!
data: AWSJSON
}
Run Code Online (Sandbox Code Playgroud)
我发送的请求如下:
const dbReturn = await API.graphql(graphqlOperation(
mutations.createUser, {
input: {
"email": "fake.email@atdot.com",
"data": [{
"num": 34,
}]
}
}
));
Run Code Online (Sandbox Code Playgroud)
错误消息说:
“变量‘数据’的值无效。无法将 [{num=34}] 解析为有效的 JSON。”
令我困惑的是,这"[{num=34}]"不是我给它的输入。我正在发送它"[{"num": 34}]"是有效的 …