如何在React/Typescript中输入函数

j13ufse2  于 2023-05-08  发布在  TypeScript
关注(0)|答案(2)|浏览(185)

我试图在返回对象的子组件中键入一个函数,但得到错误Expected 0 arguments,but got 1in the handler function。即使我在代码的顶部输入从props接收的函数,期望它返回一个必需的对象。
https://codesandbox.io/s/test-login-page-tasks-typescript-24-04-eg91s5?file=/src/components/TaskComponent.tsx

import React, { useState, FC } from "react";

type Tasks = {
  title: string;
  author: string;
  description: string;
  status: string;
  priority: string;
};

type Props = {
  Tasks: Tasks[];
  changeTask: () => {};
};

const TaskComponent: FC<Props> = ({ Tasks, changeTask }) => {

  const task = Tasks.find((task) => String(task.id) === id);
  const handleSaveTask = (event) => {
    event.preventDefault();

    changeTask({
      ...task,
      status,
      priority
    });
  };
  return (
  <form onSubmit={handleSaveTask}>
    ...
  </form>
  )
2izufjch

2izufjch1#

正如@Niklas所建议的,改变changeTask的类型如何?
示例:

type Props = {
  tasks: Task[];
  changeTask: (task: Task) => void;
};

另外,您正在使用名称Tasks作为类型和变量。我建议改变其中任何一个。

kxeu7u2r

kxeu7u2r2#

  1. Props -> ChangeTask被声明为一个不带参数的函数,但是当在2 ->上调用时,传递了一个与签名不匹配的参数

相关问题