我正在学习反应,在课程中他们正在使用create-react-app,我正在尝试编码但不知何故我不认为babel正在为我工作所以我需要使用构造函数和即使我关注的课程不是。我已经设法跟进,直到我上这个使用静态的课程。
课程提供的代码是:
import React, { Component } from 'react'
import PropTypes from 'prop-types'
class Xpto extends Component {
static propTypes = { //some props }
}
render() {
// some logic
}
我的代码是:
import React, { Component } from 'react'
import PropTypes from 'prop-types'
class Xpto extends Component {
constructor() {
super()
static propTypes = { //some props }
}
render() {
// some logic
}
}
问题在于,当我使用它时,它会返回此错误:
Syntax error: static is a reserved word in strict mode (10:4)
如果我将它移到构造函数之外,但在类中,它表示propTypes
未定义,如果我删除静态并使用this.propTypes
它可以工作,但在控制台中返回错误说使用静态。
我不了解正在发生的事情或如何解决这种情况。问一个朋友,他已经和React做了一些工作,他告诉我他也不知道要让babel工作并使用课程方法,但我很固执,想知道发生了什么,所以我要联系你
提前感谢您的帮助。
答案 0 :(得分:0)
尝试在课堂外定义propTypes
:
class Xpto extends Component {
constructor(props) {
super(props);
}
render() {
const { name = 'Dan Abramov' } = this.props;
return <div>{name}</div>;
}
}
// You can define propTypes and defaultProps here
Xpto.propTypes = {
name: PropTypes.string
};
如果确实有效,请尝试删除constructor
。
如果它不起作用,请发布错误,我们将从那里开始。