【发布时间】:2021-01-22 10:54:17
【问题描述】:
我正在尝试将我的 JSX 代码转换为 typescript (TSX),并且在使用 useState 挂钩时难以通过接口。我想要的只是在我的状态下的空数组接口,并且在更新时我将对象一一推送到数组。
更新计数时出现键入错误“'any[]' 类型的参数不可分配给'SetStateAction' 类型的参数。 类型 'any[]' 不可分配给类型 '(prevState: IData) => IData'。 类型 'any[]' 不匹配签名 '(prevState: IData): IData'"
这是我做的代码:
sample.tsx
const interface IData {
id: number
value: string
}
const Sample = () => {
let [count, setCount] = useState<IData>([]); <------------ Want to know how to pass the blank interface or Array and also how to update interface once values are pushed to the Array
const addCount = () => {
setCount([...count, {
id: count.length,
value: 'Condition ' + count.length
}])
}
const handleRemove = (id:number) => {
console.log(id);
const count_upd = count.filter((item:any) => item.id != id);
setCount(count_upd);
}
return(
<React.Fragment>
<Container>
{ Array(count).fill(<ConditionSeg Data={count.map((item:IData) => (
item.id,item.value
))}
HandleRemove ={handleRemove}
/>)}
</Container>
<Container>
<Button
onClick={addCount}>
Click me</Button>
</Container>
</React.Fragment>
)
}
附:不要介意类型错误。
【问题讨论】:
标签: reactjs typescript react-hooks