Reactjs 如何在ES6中正确地向React组件添加propTypes?
我正在以ES6类的形式编写React组件。我试图添加Reactjs 如何在ES6中正确地向React组件添加propTypes?,reactjs,Reactjs,我正在以ES6类的形式编写React组件。我试图添加propTypes,Meteor抛出了这个错误类属性后需要分号。以下是我的组件: class MainLayout extends Component { propTypes: { content: React.PropTypes.element } componentDidMount () { $(window).load(() => { $('.flexslider') .flex
propTypes
,Meteor抛出了这个错误类属性后需要分号。以下是我的组件:
class MainLayout extends Component {
propTypes: {
content: React.PropTypes.element
}
componentDidMount () {
$(window).load(() => {
$('.flexslider')
.flexslider(
{ animation: 'fade', animationSpeed: 1500, controlNav: false }
);
});
}
render () {
return (
<div>
<Header/>
{/* Content */}
{ this.props.content }
</div>
);
}
}
class MainLayout扩展组件{
道具类型:{
内容:React.PropTypes.element
}
组件安装(){
$(窗口)。加载(()=>{
$(“.flexslider”)
.柔性滑块(
{动画:“淡入淡出”,动画速度:1500,控制导航:false}
);
});
}
渲染(){
返回(
{/*内容*/}
{this.props.content}
);
}
}
如何解决此问题?使用es6 class synax,您不能在类定义中设置类的静态属性
因此,基本上
class MainLayout extends Component {
propTypes: {
content: React.PropTypes.element
}
..
}
应该是
class MainLayout extends Component {
...
}
MainLayout.propTypes = {
content: React.PropTypes.element
}
然而,使用es7类,您可以像这样定义proptype,这更符合您的期望:
class MainLayout extends Component {
static propTypes = {
content: React.PropTypes.element
}
..
}
非常感谢!但是,如果我在类定义中将其定义为一个静态函数,比如static propTypes(){return{content:React.propTypes.element,};}
,我怀疑它会抛出一个错误,因为propTypes
需要是一个刚刚尝试过的对象,并且它实际工作了。但不确定这是不是正确的方法做了更多的测试。。。它不会抛出任何错误,但不起作用。不会进行验证。。。您的方法工作得很好:-)在类中,static get propTypes(){return{…}
为我工作。