【发布时间】:2020-11-06 07:32:18
【问题描述】:
我想将 setter hook (setValuesList) 从父组件 (App.tsx) 传递给子组件 (AddNumber.tsx)
我在父组件中定义了这样的钩子:
const [valuesList, setValuesList] = useState<number[]>([]);
我想像这样将钩子传递给子组件:
<AddNumber valuesList={valuesList} setValuesList={setValuesList} />
但是我得到一个 Typescript 错误:
(JSX attribute) AppProps.setValuesList: (num: number) => void
Type 'Dispatch<SetStateAction<number[]>>' is not assignable to type '(num: number) => void'.
Types of parameters 'value' and 'num' are incompatible.
Type 'number' is not assignable to type 'SetStateAction<number[]>'.ts(2322)
AddNumber.tsx(5, 3): The expected type comes from property 'setValuesList' which is declared here on type 'IntrinsicAttributes & AppProps'
在子组件中,我正在为这样的道具定义一个接口:
interface AppProps {
valuesList: number[];
setValuesList: (num: number) => void;
}
有人看到我在这里做错了吗?
我的存储库位于:https://github.com/acandael/number-list
感谢您的帮助,
安东尼
【问题讨论】:
标签: reactjs typescript react-hooks