【发布时间】:2019-12-25 00:58:24
【问题描述】:
为功能性 React 组件定义默认 prop 值的正确方法是什么?
使用 TypeScript
interface ThingProps {
something?: number;
}
const Thing: FC<ThingProps> = (props: ThingProps): ReactElement => {
const something = props.something || 0
// ...
}
任由我写
<Thing />
或
<Thing something={someValue} />
两者都能正常工作。
这是正确的习惯用法,还是 React 有不同的首选方式来实现这一点?
请注意,虽然有 answers here 与此有关,但它们已经很老了(2016 年),对我没有任何作用:它们导致 <Thing /> 的 TS 错误(缺少必需的属性)或使用 something(可能是未定义)。
【问题讨论】:
-
@EmileBergeron 不,我看到了,但这里的问题是关于这种特定方法。这个答案是从 2016 年开始的,事情已经发生了变化。 answer there 对我不起作用。
-
那么请确保在您的问题中突出显示其他问题中的问题,例如提及您正在使用的 TS 版本。或悬赏旧问题以收集最新答案。
-
@EmileBergeron 嗯,确实!现在,我似乎可以通过做我正在做的事情来两全其美(简单的 TypeScript,易于遵循并避免引入新的类型/接口)并简单地添加
Counter.defaultProps = { sequence: 0 }告诉 React 我在做什么到。
标签: reactjs typescript react-props