有没有一种方法可以在函数内部不进行渲染返回的情况下进行突变?

时间:2019-02-12 21:43:20

标签: react-native react-apollo apollo-client

我想对apollo客户端的graphQL后端中的内容进行更改,但是该更改假定不呈现任何内容,这只是后台工作,我想在构造函数中调用的函数中运行它,如下所示:

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

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

client.mutation...

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

谢谢。

1 个答案:

答案 0 :(得分:0)

临时,我最终使用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标签的答案或与客户有关的信息,那将是很好的。