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不确定它是如何相关的。如果你没有定义它-它肯定是未定义的。