Официальная документация React Apollo показывает следующий пример интеграции мутаций в приложение React.
При применении новых правил ts lint я заметил, что эта часть кода несовместима с jsx-no-multiline-js rule.
Отключение этого флага включено, однако лично мне трудно читать такие компоненты с помощью функции в качестве дочернего элемента.Поэтому я ищу несколько способов переформатировать этот код.
Есть предложения?
import gql from "graphql-tag";
import { Mutation } from "react-apollo";
const ADD_TODO = gql`
mutation AddTodo($type: String!) {
addTodo(type: $type) {
id
type
}
}
`;
const AddTodo = () => {
let input;
return (
<Mutation mutation={ADD_TODO}>
{(addTodo, { data }) => (
<div>
<form
onSubmit={e => {
e.preventDefault();
addTodo({ variables: { type: input.value } });
input.value = "";
}}
>
<input
ref={node => {
input = node;
}}
/>
<button type="submit">Add Todo</button>
</form>
</div>
)}
</Mutation>
);
};