Ошибка клиента Apollo, объекты недопустимы как дочерние элементы React (найдено: [обещание объекта]) - PullRequest
0 голосов
/ 28 января 2019

Я получаю странную ошибку при попытке выполнить async / await в моем запросе 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 Ответ

0 голосов
/ 02 февраля 2019

Причина, по которой вы получаете ошибку, состоит в том, что функция async возвращает обещание.И вы пытаетесь сделать обещание внутри метода рендеринга.Это не специфическая ошибка Аполлона, React просто не допускает этого.

Причина, по которой это работает, когда у вас нет async, заключается в том, что функция возвращает undefined, которая реагирует, обрабатывается как null в методе рендеринга и ничего не рендерит.

...