React Apollo的正式文档显示了以下示例,将Mutations集成到React应用程序中。
在应用新的ts lint规则时,我注意到这段代码与 jsx-no-multiline-js 规则不兼容。
关闭此标志为打开选项,但是我个人觉得很难阅读 具有儿童功能的组件。因此,我正在寻找重新格式化此代码的方法。
有什么建议吗?
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>
);
};
答案 0 :(得分:0)
来自the docs:
好像您在第一个<div>
之前的左括号之前缺少新行
<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>