【发布时间】:2017-10-10 14:13:21
【问题描述】:
有没有办法获取引用可选属性(即未指定为必需)的任何 propTypes 的密钥?
例如,给定以下道具:
TestComponent.propTypes = {
requiredProp: PropTypes.string.isRequired,
optionalProp: PropTypes.func,
optionalProp2: PropTypes.element
}
...我可以得到一个包含项目的数组吗:["optionalProp", "optionalProp2"]
如果没有内置的方法来做到这一点,是否有一个优雅的解决方案:
- 避免对它们的列表进行硬编码
- 避免从已实现此功能的自定义类派生
- 可以在我所有的 react 组件中使用
我正在考虑使用上下文来定义这样一个函数,然后像这样在当前组件上调用它:this.context.getOptionalProps.call(this)
但这似乎是对上下文的不好使用。
【问题讨论】:
-
您使用的是
react@15PropTypes还是新的prop-types包?您可以通过this.constructor.propTypes访问 PropTypes,但将其与isRequired属性匹配可能会很困难 -
@CodingIntrigue 我正在使用新的
prop-types包,如果有帮助的话
标签: javascript reactjs ecmascript-6