2015-09-06 70 views

回答

2

这是因为在你的考试组件的地图功能里面渲染方法关键字是不是指的考试组件对象。您可以解决问题与ES6箭头功能或创建一个名为局部变量_this和地图功能

前用箭头功能

var questions = this.state.questions.map((question, index) =>{ 
     return (
      React.createElement(Question, { 
       key: index, 
       index: index, 
       src: question, 
       handleAddChoice: this.onAddChoice}) 
     ); 
    }); 

的jsfiddle http://jsfiddle.net/jkwhrs1j/

随着分配这个_this局部变量赋值 jsfiddle http://jsfiddle.net/gzevgjfb/

1

继pashaplus的回答,您还可以通过上下文参数映射函数是这样的:

var questions = this.state.questions.map(function (question, index) { 
    return (
     <Question 
      key={index} 
      index={index} 
      src={question} 
      handleAddChoice={this.onAddChoice} /> 
    ); 
}, this); 
+0

冷静,我会用这 –