【发布时间】:2021-03-30 07:18:09
【问题描述】:
为什么会做以下事情:
type Props = {
name?: string
age: number
}
const Test = FC<Props> = (props) => {
return (
<h1>Hello, {props.name}. You are {props.age} years old.</h1>
)
}
Test.defaultProps = {
name: "John"
}
即使name 在defaultProps 中定义,当strict 模式设置为true 时,发出name 可能是undefined 的警告。
【问题讨论】:
-
因为您指定
name可以在Props中未定义 -
如果你确定你会传递名字然后删除
?如果不是问我我有一个解决方案 -
@MoshFeu 我认为在
FC中传递Props的目的是您可以这样做... -
@GayatriDipali 不一定。
name有一个默认值。但是如果你删除?,它会在你每次使用组件时要求nameprop,这是无效的,因为它有一个默认属性。 -
不。这意味着
name可以是未定义的,因此代码应该考虑它。您可以删除可选标记 (?),因为您知道名称永远不会未定义。
标签: reactjs typescript