reactjs - 对函数声明强制执行 TSX 道具类型内联,该函数声明使用对象解构来声明道具
问题描述
我有一个自定义类型
export class MyClass {
name: string;
img: string;
constructor(name: string) {
this.name = name;
this.img = `/images/${name}.jpg`;
}
}
我有一个无状态功能组件,它将该类型作为参数
export default (issue: Issue) => {
...
}
当我尝试创建无状态功能组件时
<MagazineCard issue={issues[0] as Issue} />
我得到错误
Type '{ issue: any; }' is not assignable to type 'IntrinsicAttributes & Issue'.
下面有一个解决方案,但我觉得我应该把这个材料留给其他人,他们可能会看到这个问题以获得替代解决方案和更深入的理解
初始化 JSX 时的对象解构,例如:
<MagazineCard {...issues[0]} />
注意:不需要指定类型
道具类型
MagazineCard.propTypes = {
issue: Issue
}
解决方案
这就是它的完成方式
export default ({issue} : {issue : Issue}) => (
//...Your JSX component
)
我很困惑,因为它对我来说似乎过于复杂,所以我在 reddit 上发了一个帖子,问为什么这是这样做的语法
推荐阅读
- python - 我无法使用 for 循环从两个列表中构建字典
- django - Django 休息框架;如何使用外键的 ID 通过序列化程序创建实例?
- database - 传输数据的总时间?
- ios - 如何使用 Autolayout 调整 UITableView 的大小?
- android - ObjectBox 在类型迁移后不保留以前的值
- r - 将多个 survfit() 输出提取到表中
- autodesk-forge - 涉及圆弧或圆的几何问题
- javascript - JavaScript 数组内部内存组织
- python - 有没有办法让鼠标移动通用而不管灵敏度如何?
- linux - 使用 find 命令在 shell 脚本中获取目录中的文件扩展名