【发布时间】:2017-08-10 04:06:40
【问题描述】:
我需要一个可以返回任何 React 组件的 propTypes 和 defaultProps 的函数,以便显示这样的表格:
我创建了以下函数来读取propTypes 和defaultProps
function getInfo(component) {
console.log('propTypes', component.propTypes)
console.log('defaultProps', component.defaultProps)
}
复制
https://www.webpackbin.com/bins/-KfXIWlTGcgSo-GeNAFR
预期 && 结果
记录 propTypes 和 defaultProps
在 webpack 2 中怎么样?
我正在尝试使用如下所示的组件重现相同的内容:
export class Button extends React.Component {
static propTypes = {
data: PropTypes.object.isRequired,
onSubmitFormLogin: PropTypes.func.isRequired,
changeForm: PropTypes.func.isRequired,
requestError: PropTypes.func.isRequired,
};
static defaultProps = {
data: {}
};
...
}
为了使其工作,您需要使用static 关键字
根据babel,它应该是完全相同的东西但由于某种原因我无法阅读propTypes,但只能阅读defaultProps,那么他们去哪里了?
是 Webpack/Babel 删除了它们吗?
有没有人使用这种语法成功读取propTypes?
注意:我无法重现该问题,因为我没有找到任何允许 static 关键字的 webpackbin 等效项
【问题讨论】:
-
它适用于类属性 (
static)。使用您发布的Button和webpackbin 的getInfo,调用getInfo(Button)可以正确显示它们。 -
是的,这就是我要说的,它在这种环境下工作得很好。我在问为什么它在另一个环境中不能正常工作。
-
您说具有类属性的那个不适用于 webpack 2,但它可以。如果您可以阅读其中一个但不能阅读另一个,则您的代码中可能有错字。您发布的按钮效果很好。
-
@MichaelJungo 这就是问题所在,我的代码没有错误,我的同事同意我们需要询问某人。尝试克隆此存储库。直接安装github.com/react-boilerplate/react-boilerplate自己试试吧,这差不多就是我的配置了,没有理由你能我不能。
标签: javascript reactjs webpack babeljs jsx