【发布时间】:2021-09-15 08:44:11
【问题描述】:
有一个这样类型的 React.FC 函数接收一个 useState 数组
const TupleFn: React.FC<[boolean, (value: boolean) => void]> =
(([open, setOpen])) =>{}
我知道我可以使用对象类型并将数组属性命名为
{ control: [k, (value: k) => void] }
但我只想传递一个数组而不是对象来解构 lambda 道具中的数组而不是正文中的数组,就像这样
(([open, setOpen]) => {}
不是这样的
(control) => {
[open, setOpen] = control
}
尝试使用 rest props 语法传递元组 props (...)
<TupleFn {...[open, setOpen]} />
它将数组转换为对象,所以它不能被解构为数组
【问题讨论】:
-
我认为将元组作为道具传递是不明智的,因为
React.FC<proptype>将使用可选的proptype属性增加children,这意味着它将假定它已经获得了一个对象 -
@apokryfos 这是可以理解的,并清楚地表明它无法实现,正如建议的那样
标签: reactjs typescript tuples