首页 > 解决方案 > 有没有办法在函数内部进行没有渲染返回的突变?

问题描述

我想从 apollo 客户端对 graphQL 后端中的某些内容进行变异,但是变异应该什么都不渲染,它只是后台工作,我想在构造函数中调用的函数中运行它,如下所示:

_callUpdateTokenMutation(token: String) {
    return <Mutation mutation={REFRESH_FCM_TOKEN} variables={token}>
      {updateFcmToken => (
        return true
      )}
    </Mutation>;
  }

我想知道是否有一种方法可以在没有 Mutation 标签的情况下运行它,例如:

client.mutation...

问题是客户端是在 App.js 中构建的,我想在组件中调用它,客户端是全局的吗?

提前致谢。

标签: react-nativereact-apolloapollo-client

解决方案


暂时,我最终使用 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 标签的答案或与客户端有关的东西,那就太好了。


推荐阅读