我有一个功能组件(用Typescript编写),需要将处理程序函数传递给子组件。这是父函数的缩小版本:

type Props = { handleLocationChange(): void };

const Sidebar: React.FC<Props> = (props) => {
 const handleLocationChange = () => {
    console.log('Location Changed.');
  };
return (
   <>
      <Search handleLocationChange={handleLocationChange} />
   </>
)
}


在VS Code中,搜索组件显示错误:

输入'{handleLocationChange:()=> void; }'不能分配给'IntrinsicAttributes&{children ?: ReactNode; }'。
  属性'handleLocationChange'在类型'IntrinsicAttributes&{children ?: ReactNode; }'。ts(2322)

任何帮助将非常感激。我确定我缺少一些小东西。

最佳答案

您需要将handleLocationChange声明为Search组件上的prop

10-02 18:31