我打算使用React v0.13.3构建一个考试生成器。问题是当我点击Add a choice
时,我作为prop元素传递的回调函数未定义。这里是完整的片段。reactjs传递回调结果未定义
顺便说一句,我粘贴转换后的脚本,你应该想要的jsx脚本。这里是not-yet-transformed.js
我打算使用React v0.13.3构建一个考试生成器。问题是当我点击Add a choice
时,我作为prop元素传递的回调函数未定义。这里是完整的片段。reactjs传递回调结果未定义
顺便说一句,我粘贴转换后的脚本,你应该想要的jsx脚本。这里是not-yet-transformed.js
这是因为在你的考试组件的地图功能里面渲染方法这关键字是不是指的考试组件对象。您可以解决问题与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/
继pashaplus的回答,您还可以通过上下文参数映射函数是这样的:
var questions = this.state.questions.map(function (question, index) {
return (
<Question
key={index}
index={index}
src={question}
handleAddChoice={this.onAddChoice} />
);
}, this);
冷静,我会用这 –