**关闭。**这个问题是not reproducible or was caused by typos。目前不接受答复。
此问题是由打印错误或无法再重现的问题引起的。虽然类似的问题可能是on-topic在这里,这一个是解决的方式不太可能帮助未来的读者。
昨天关门了。
Improve this question
如何在react typescript中输入 prop ?我收到错误属性'authors' does not exist on type '[Props] & { children?:ReactNode;}'. ts。我希望传递一个由名称和密码密钥组成的数组。
https://codesandbox.io/s/test-login-page-tasks-24-04-forked-eg91s5?file=/src/components/Login.tsx:229-274
type Props = {
authors: {
name: string;
password: string;
}[];
};
const Login: FC<[Props]> = ({ authors }) => {
return (
...
)
}
虽然我在传递 prop 。
4条答案
按热度按时间wqsoz72f1#
尝试将
[Props]
更改为Props
,如下所示现在它可以工作了,因为它期望的是对象而不是数组,我们将传递一个像
<Login authors={authors} />
这样的对象。现在authors将是一个对象数组。a5g8bdjr2#
你可以使用
type
或interface
来描述 prop 。通常用interface
来描述objects
。interfaces
以字母I
开始,types
以T
开始,这也是一个很好的约定。在上面的示例中,
Login
组件期望一个propauthors
,它是IAuthor
e描述的objects
数组。g的。希望这能帮上忙。
gab6jxml3#
k4emjkb14#
您定义了IUser接口并定义了名称、密码状态以及IUser类型,这将导致问题,因为当您定义以下内容时:
这是错误的,因为name,password是一个字符串,所以试着这样定义它:
然后你必须修复向FC组件传递作者的问题:
最后一件事,你必须修复这个类型,以匹配你从应用程序传递给它的数据类型。tsx:
然后你从应用程序中传递它,就像这样: