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 - 突变期间抛出的错误
Gatsby with Apollo 在查询中未定义时给出错误作为客户端
Apollo GraphQL:更改默认标题 INSIDE React 子组件