Я пытаюсь запросить API GraphQl с помощью Apollo. Я делаю это в React с машинописью и не могу заставить компонент Query перестать выдавать ошибки.
Я новичок во всей этой комбинации, поэтому я могу делать что-то явно не так. Есть идеи?
Вот ошибка:
Type '{ children: (string | (({ loading, error, data }: QueryResult<any, OperationVariables>) => any))[]; query: any; }' is not assignable to type 'Pick<Readonly<QueryProps<any, OperationVariables>> & Readonly<{ children?: ReactNode; }>, "children" | "displayName" | "skip" | "onCompleted" | "onError" | "ssr" | "variables" | ... 6 more ... | "partialRefetch">'.
Types of property 'children' are incompatible.
Type '(string | (({ loading, error, data }: QueryResult<any, OperationVariables>) => any))[]' is not assignable to type '((result: QueryResult<any, OperationVariables>) => ReactNode) | (((result: QueryResult<any, OperationVariables>) => ReactNode) & string) | (((result: QueryResult<any, OperationVariables>) => ReactNode) & number) | ... 4 more ... | (((result: QueryResult<...>) => ReactNode) & ReactPortal)'.
Type '(string | (({ loading, error, data }: QueryResult<any, OperationVariables>) => any))[]' is not assignable to type '((result: QueryResult<any, OperationVariables>) => ReactNode) & ReactNodeArray
Вот мой код:
import React from 'react';
import gql from "graphql-tag";
import { Query } from "react-apollo";
export interface LoginProps {
data: object; item: string; query: object; loading: string; error: string;
};
const getLogin =
gql`
{
viewer {
login
}
}
`;
export class Test extends React.Component<LoginProps, {}> {
<Query query={getLogin}>
{({ loading, error, data }) => {
if (loading) return <p>Loading...</p>;
if (error) return <p>Error!</p>;
return data.viewer.map( item => {
<div key={item.login}>
<p>{item.login}</p>
</div>
});
}};
</Query>
};
export default Test;