react-native - 有没有办法在函数内部进行没有渲染返回的突变?
问题描述
我想从 apollo 客户端对 graphQL 后端中的某些内容进行变异,但是变异应该什么都不渲染,它只是后台工作,我想在构造函数中调用的函数中运行它,如下所示:
_callUpdateTokenMutation(token: String) {
return <Mutation mutation={REFRESH_FCM_TOKEN} variables={token}>
{updateFcmToken => (
return true
)}
</Mutation>;
}
我想知道是否有一种方法可以在没有 Mutation 标签的情况下运行它,例如:
client.mutation...
问题是客户端是在 App.js 中构建的,我想在组件中调用它,客户端是全局的吗?
提前致谢。
解决方案
暂时,我最终使用 fetch 在服务器中运行突变,如下所示:
async _callUpdateTokenMutation(token: String) {
const authUser = await getToken();
if (authUser) {
fetch(`${global.endpoint}/graphql`, {
method: "POST",
headers: {
Accept: "application/json",
"Content-Type": "application/json",
Authorization: authUser
},
body: JSON.stringify({
query: `mutation { updateFcmToken(token: ${token}) { id } }`
})
})
// .then(response => response.json())
.then(responseJson => {
console.log(responseJson);
})
.catch(error => {
/* TODO:
* Leer bien el mensaje desde el servidor y mostrar la alerta
* que manda el servidor
*/
console.log("HOME_FCM_ERROR", error);
});
}
}
但是,如果有人知道带有 Mutation 标签的答案或与客户端有关的东西,那就太好了。
推荐阅读
- git - 当我执行 git clone 时,在不区分大小写的文件系统上出现区分大小写的路径冲突
- node.js - 通过 ID 数组检查文档是否存在
- c - 缓冲区的地址是否等于缓冲区?
- java - Java 11 时间 - 今天是(长)时间戳
- java - 使用Java将目录复制到另一个目录
- c# - 如何将gridview中每一行的值相乘
- gdb - gbd 无法链接到源
- python - Tkinter - 只标记一个复选框
- java - 在 com.sun.jdi.ObjectReference 上调用方法时,何时使用 INVOKE_SINGLE_THREADED 或 INVOKE_NONVIRTUAL?
- bash - clang++:找不到命令