Apollo 客户端错误,对象作为 React 子级无效(发现:[object Promise])

Posted

技术标签:

【中文标题】Apollo 客户端错误,对象作为 React 子级无效(发现:[object Promise])【英文标题】:Apollo Client Error, Objects are not valid as a React child (found: [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 有什么我不明白的地方吗?

【问题讨论】:

【参考方案1】:

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

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

【讨论】:

以上是关于Apollo 客户端错误,对象作为 React 子级无效(发现:[object Promise])的主要内容,如果未能解决你的问题,请参考以下文章

React Native、GraphQL、Apollo - 突变期间抛出的错误

React 对象作为 React 子错误无效

Gatsby with Apollo 在查询中未定义时给出错误作为客户端

Apollo GraphQL:更改默认标题 INSIDE React 子组件

错误:对象作为 React 子对象无效(找到:带有键 low, high 的对象)

为啥在 React 中的 Apollo 客户端中显示错误未显示