Apollo 客户端错误,对象作为 React 子项无效(找到:[object Promise])
Apollo Client Error, Objects are not valid as a React child (found: [object Promise])
我在尝试对我的 graphql 查询执行 async/await 时收到一个奇怪的错误。不知道在这里做什么。
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
函数 returns 一个承诺。而且,您正试图在 render 方法中呈现一个承诺。这不是 Apollo 特有的错误,React 根本不允许这样做。
当你没有 async
时它工作的原因是因为 returns undefined
函数在渲染方法中被视为 null
并且不渲染任何东西。
我在尝试对我的 graphql 查询执行 async/await 时收到一个奇怪的错误。不知道在这里做什么。
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
函数 returns 一个承诺。而且,您正试图在 render 方法中呈现一个承诺。这不是 Apollo 特有的错误,React 根本不允许这样做。
当你没有 async
时它工作的原因是因为 returns undefined
函数在渲染方法中被视为 null
并且不渲染任何东西。