Reactjs 如何将React.createClass移植到ES6

Reactjs 如何将React.createClass移植到ES6,reactjs,ecmascript-6,Reactjs,Ecmascript 6,我常说 var HomePage = React.createClass({ getInitialState: function() { var stocks = {}; ... feed.onChange(function(stock) { stocks[stock.symbol] = stock; this.setState({stocks: stocks, bid: stock,

我常说

var HomePage = React.createClass({
    getInitialState: function() {  
        var stocks = {};
    ...

feed.onChange(function(stock) {            
            stocks[stock.symbol] = stock;
            this.setState({stocks: stocks, bid: stock, ask: stock, last: stock, type: stock, undsymbol: stock});
        }.bind(this));

        return {
            stocks: stocks
        };
    },  
    componentDidMount() {              
        var props = this.props;
    },
    ...

},
但是ES6中没有
getInitialState
。但是将语句放在
构造函数的何处

return {
                stocks: stocks
       };
它抱怨没有
渲染
功能

class HomePage extends React.Component {
    constructor(props) {
        super(props);
    // Can't do this here
    //  return {
    //       stocks: stocks
    //  };
}
当我执行
this.state.stocks[stock.symbol]
时,我得到

app.js:555 Uncaught TypeError: Cannot set property 'JNJ' of undefined
    at n.feed.onChange (<anonymous>:555:45)


componentDidMount() {              
        //var props = this.props;

         feed.onChange((stock) => {            
            this.state.stocks[stock.symbol] =
app.js:555未捕获类型错误:无法设置未定义的属性“JNJ”
在n.feed.onChange(:555:45)
componentDidMount(){
//var props=this.props;
feed.onChange((股票)=>{
this.state.stocks[stock.symbol]=

对于如何(放置在哪里)感到困惑
返回{stocks:stocks}
您只需显式设置组件的
状态
属性:

this.state = {
    stocks: stocks
};

在构造函数中。

并且库存是undefined@Ivan不确定它是如何相关的。如果你没有定义它-它肯定是未定义的。