将React组件重构为ES6。在Chrome和Firefox中出错

时间:2015-11-09 22:10:03

标签: google-chrome reactjs

我已经将以下组件重构为ES6,并且我使用的是最新版本的BabelJS。当我运行webpack时,一切都编译没有问题,问题是我在控制台中收到以下错误

Firefox 42.0我收到以下错误

size

在Google Chrome中,出现以下错误

**kwargs

这是以下组件我不知道我错过了什么或我做错了什么。我过去几天一直在对此进行故障排除。

    mutating the [[Prototype]] of an object will cause your code to run very slowly; instead create the object with the correct initial 
[[Prototype]] value using Object.create bundle.js:19697:416
    TypeError: _react2.default.propTypes is undefined

2 个答案:

答案 0 :(得分:2)

我发现了一些问题,希望能解决这个问题。

  1. 由于您使用的是ES6类来定义React组件,getInitialState cannot be used like that。相反,你应该:

    constructor(props) {
        super(props);
        this.state = { chat: [] };
    }
    
  2. 您有ChatList.PropTypes = …而不是ChatList.propTypes(小p)且props未定义,因此您的错误'无法访问未定义的属性字符串“

    ChatList.propTypes = {
        URL: React.PropTypes.string.isRequired
    };
    

答案 1 :(得分:0)

您是否在任何地方定义了props变量,因为这似乎是您的问题? React.PropTypes上提供了反应道具类型。

你可以试试这个:

ChatList.PropTypes = {
  URL: React.PropTypes.string.isRequired
};