【问题标题】:Apollo Client Error, Objects are not valid as a React child (found: [object Promise])Apollo 客户端错误,对象作为 React 子级无效(发现:[object Promise])
【发布时间】:2019-06-21 21:55:38
【问题描述】:

尝试对我的 graphql 查询执行异步/等待时,我遇到了一个奇怪的错误。不知道在这里做什么。

import React, { Component } from "react";
import { ApolloConsumer } from 'react-apollo';
import Landing from '../modules/landing/index.js';
import getUser from '../shared/services/get-user';

export default class extends Component {
  checkLoggedIn = async (client) => {
    const response = await getUser(client);
    console.log(response);
  }

  render() {
    return (
      <ApolloConsumer>
        {client => (
          <div>
            {this.checkLoggedIn(client)}
            <Landing />
          </div>
        )}
      </ApolloConsumer>
    )
  }
}

如果我删除异步等待语法,应用程序会继续执行我的 getUser 查询。但是,当我尝试使用 async/await 执行此操作时。我的应用程序显示上述错误。 ApolloConsumer 有什么我不明白的地方吗?

【问题讨论】:

    标签: async-await graphql apollo-client next.js


    【解决方案1】:

    您收到错误的原因是因为async 函数返回了一个承诺。而且,您正试图在 render 方法中呈现一个 Promise。这不是 Apollo 特定的错误,React 根本不允许这样做。

    当你没有async 时它工作的原因是因为该函数返回undefined,它在渲染方法中被视为null,并且不渲染任何东西。

    【讨论】:

      猜你喜欢
      • 2021-10-02
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-01-10
      • 2016-10-26
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多