将挂钩传递给子打字稿的问题

时间:2019-02-07 14:24:41

标签: javascript reactjs typescript ecmascript-6

我有一个使用钩子的react组件。我的父组件看起来像这样:

const Parent = () => {

   const [isActive, setIsActive] = useState(false);

   return (
     <Child isActive={isActive} setIsActive={setIsActive} />
   );
}

这是子组件

type Props = {
   isActive: boolean;
   setIsActive: () => void;
}
const Child = ({ isActive, setIsActive}: Props) {
   // component
} 

我看到的错误是

  

类型错误:类型'Dispatch '不可分配给>类型'()=> void'。 TS2322

1 个答案:

答案 0 :(得分:4)

您的Props的{​​{1}}类型不正确。 React将Child的类型为setIsActive,定义为:

Dispatch

您缺少类型中的type Dispatch<A> = (value: A) => void; 参数。这应该是正确的(还请注意,它必须是冒号而不是等号):

value