『Expected 1 arguments, but got 2.』を解決したい
Q&A
Closed
『Expected 1 arguments, but got 2.』 を解決したい
下記の箇所に、titleとcontentを加えたら、上記のエラーが表示される。
エラー文を検索したら、『引数は1つしか渡せないのに、2つ渡してしまっているエラー』と判明。
createTodo に渡す引数を見直すまではわかったが、汎用的な内容しか記載してなくて、解決策がわからなかった。
title, content を両立する方法を知りたいです。
何方かアドバイスをお願いします。
const { title, content } = data;
dispatch(createTodo(title, content));
発生している問題・エラー
TS2554: Expected 1 arguments, but got 2.
20 | const onSubmit = (data: { title: string; content: string }) => {
21 | const { title, content } = data;
> 22 | dispatch(createTodo(title, content));
| ^^^^^^^
23 | reset();
24 | };
25 | return (
AddTodo.tsx
import { useForm } from 'react-hook-form';
import {
Box,
Button,
FormControl,
FormErrorMessage,
Input,
} from '@chakra-ui/react';
import { useAppDispatch } from '../../stores/hooks';
import { createTodo } from '../../stores/slices/todoSlice';
type Todo = {
title: string;
content: string;
};
const AddTodo: React.FC = () => {
const dispatch = useAppDispatch();
const {
handleSubmit,
register,
formState: { errors, isSubmitting },
reset,
} = useForm();
const onSubmit = (data: { title: string; content: string }) => {
const { title, content } = data;
dispatch(createTodo(title, content));
reset();
};
return (
<Box display='flex' justifyContent='center'>
<form onSubmit={handleSubmit(onSubmit)}>
<FormControl
isInvalid={errors.title}
w={{ base: '90vw', sm: '80vw', md: '70vw', lg: '60vw' }}
>
<Input
id='title'
placeholder='Enter Title'
{...register('title', { required: 'Please enter title.' })}
/>
{/* <Input
id='content'
placeholder='Enter Content'
{...register('content', { required: 'Please enter content.' })}
/> */}
<FormErrorMessage>
{errors.title && errors.title.message}
</FormErrorMessage>
</FormControl>
<FormControl
isInvalid={errors.content}
w={{ base: '90vw', sm: '80vw', md: '70vw', lg: '60vw' }}
>
{/* <Input
id='title'
placeholder='Enter Title'
{...register('title', { required: 'Please enter title.' })}
/> */}
<Input
id='content'
placeholder='Enter Content'
{...register('content', { required: 'Please enter content.' })}
/>
<FormErrorMessage>
{errors.content && errors.content.message}
</FormErrorMessage>
</FormControl>
<Box w='100%' display='flex' justifyContent='flex-end'>
<Button
mt={4}
colorScheme='whatsapp'
isLoading={isSubmitting}
type='submit'
variant='outline'
>
Submit
</Button>
</Box>
</form>
</Box>
);
};
export default AddTodo;
0