【发布时间】:2022-08-21 18:07:51
【问题描述】:
将 useState setter 函数传递给子组件时,我很难弄清楚类型。
我试图简化为下面的基本代码:
父母
function Parent() {
const [name, setName] = useState(\"Structured\")
..
return (
<>
<Child setName={setName}/>
</>
孩子
import { Dispatch, SetStateAction } from \"react\";
function Child(setName: Dispatch<SetStateAction<string>>){
return (
<>
<Input onChange={
(value)=>{
setName(value: SetStateAction<string>)
console.log(value)
}
</Input>
</>
在父母身上,我收到以下错误:
类型 \"{ setName: Dispatch<SetStateAction>; }\' 不是 可分配给类型 \' IntrinsicAttributes & 调度<SetStateAction\' 类型 \'IntrinsicAttributes & Dispatch<SetStateAction>\' 上不存在属性 \'setName\'。
关于我得到的孩子:
类型参数 \"string | string[]\' 不可分配给类型参数 \'SetStateAction\' 类型 \“细绳[]\' 不可分配给类型 \"SetStateAction\'
-
Child(setName: Dispatch<SetStateAction<string>>) 应该是 Child({setName: Dispatch<SetStateAction<string>>})
标签: javascript reactjs typescript