【发布时间】:2018-03-21 17:40:01
【问题描述】:
假设我有一个像这样的简单组件(假设所有内容都正确导入):
const SpecialButton = (props) => {
const { css, ...rest } = props;
return (
<Button
className={`special-btn ${css}`}
{...rest}
>
Click here
</Button>
);
};
SpecialButton.defaultProps = {
css: '',
rest: {}
};
SpecialButton.propTypes = {
css: PropTypes.string,
rest: PropTypes.object
}
我正在为其余的 props 设置默认值 {},并且我还使用对象解构将其传递给 Button 组件。
所以,假设使用 SpecialButton 的人除了 css 道具之外没有传递任何其他东西,我的问题是:
- 由于 {} 是 Object 类的一个实例,所以当我使用
...时,它是否会将 Object 的所有属性转储到 Button 组件中? - 不为其余的props指定默认值有什么问题吗?
- 你们对如何处理这个案子有更好的建议吗?
为了完整起见,我添加了道具类型和默认道具,但我不能 100% 确定是否需要。
谢谢。
【问题讨论】:
标签: javascript reactjs web ecmascript-6 react-props