Я новичок в TypeScript и теперь застрял на этом на две ночи.Я пытаюсь использовать Formik
для запроса Аполлона с реквизитом рендера, и получаю ошибку TS2349
о том, что:
Невозможно вызвать выражение, тип которого не имеет сигнатуры вызова.Тип 'QueryResult' не имеет совместимых подписей вызовов в следующих строках ...
const response = await listItems({
variables: {
filter: {
sku: {
eq: sku
}
}
},
});
Полный код выглядит следующим образом:
import * as React from "react";
import { Formik } from "formik";
import { Form, Input, Label, Button } from "reactstrap";
import { Query, Mutation } from "react-apollo";
import gql from "graphql-tag";
import "react-table/react-table.css";
import {
ListItemsQuery,
ListItemsQueryVariables
} from "./API";
import { listItems } from "./graphql/queries";
interface FormValues {
sku: string;
}
export const CheckSkuForm = () => {
return (
<div>
<Query<ListItemsQuery, ListItemsQueryVariables>
query={gql(listItems)}
variables={{
filter: {
sku: {
eq: "test"
},
inventory: {
eq: true
},
scannedMissing: {
eq: false
},
scannedFound: {
eq: false
}
}
}}
>
{listItems => (
<Formik<FormValues>
initialValues={{
sku: "",
}}
onSubmit={async ({ sku }, { resetForm }) => {
// call mutation
const response = await listItems({
variables: {
filter: {
sku: {
eq: sku
}
}
},
});
console.log(response);
resetForm();
}}
>
{({ values, handleChange, handleSubmit }) => (
<Form onSubmit={handleSubmit}>
<Label>sku</Label>
<Input
name="sku"
value={values.sku}
onChange={handleChange}
margin="normal"
/>
<br />
<Button type="submit">
Submit
</Button>
</Form>
)}
</Formik>
)}
</Query>
</div>
);
};
Есть мысли?