Javascript reactjs传递回调将导致未定义
我正在尝试使用React v0.13.3构建一个考试生成器。问题是,当我单击添加选项时,作为prop传递给Question元素的回调函数未定义。这是完整的片段 顺便说一下,我已经粘贴了转换后的脚本,您应该需要jsx脚本。给你Javascript reactjs传递回调将导致未定义,javascript,reactjs,Javascript,Reactjs,我正在尝试使用React v0.13.3构建一个考试生成器。问题是,当我单击添加选项时,作为prop传递给Question元素的回调函数未定义。这是完整的片段 顺便说一下,我已经粘贴了转换后的脚本,您应该需要jsx脚本。给你 这是因为在渲染方法内的检查组件的映射函数中,该关键字未引用检查组件对象。您可以使用Es6 arrow函数修复问题,也可以创建名为_this的局部变量,并在映射函数之前将其分配给_this 带箭头功能 var questions = this.state.questi
这是因为在渲染方法内的检查组件的映射函数中,该关键字未引用检查组件对象。您可以使用Es6 arrow函数修复问题,也可以创建名为_this的局部变量,并在映射函数之前将其分配给_this 带箭头功能
var questions = this.state.questions.map((question, index) =>{
return (
React.createElement(Question, {
key: index,
index: index,
src: question,
handleAddChoice: this.onAddChoice})
);
});
JSFIDLE
局部变量赋值
jsFIDLE这是因为在render方法内的检查组件的映射函数中,该关键字没有引用检查组件对象。您可以使用Es6 arrow函数修复问题,也可以创建名为_this的局部变量,并在映射函数之前将其分配给_this 带箭头功能
var questions = this.state.questions.map((question, index) =>{
return (
React.createElement(Question, {
key: index,
index: index,
src: question,
handleAddChoice: this.onAddChoice})
);
});
JSFIDLE
局部变量赋值
jsFIDLE这是因为在render方法内的检查组件的映射函数中,该关键字没有引用检查组件对象。您可以使用Es6 arrow函数修复问题,也可以创建名为_this的局部变量,并在映射函数之前将其分配给_this 带箭头功能
var questions = this.state.questions.map((question, index) =>{
return (
React.createElement(Question, {
key: index,
index: index,
src: question,
handleAddChoice: this.onAddChoice})
);
});
JSFIDLE
局部变量赋值
jsFIDLE这是因为在render方法内的检查组件的映射函数中,该关键字没有引用检查组件对象。您可以使用Es6 arrow函数修复问题,也可以创建名为_this的局部变量,并在映射函数之前将其分配给_this 带箭头功能
var questions = this.state.questions.map((question, index) =>{
return (
React.createElement(Question, {
key: index,
index: index,
src: question,
handleAddChoice: this.onAddChoice})
);
});
JSFIDLE
局部变量赋值
jshiddle根据pashaplus的回答,您还可以像下面这样将上下文参数传递给map函数:
var questions = this.state.questions.map(function (question, index) {
return (
<Question
key={index}
index={index}
src={question}
handleAddChoice={this.onAddChoice} />
);
}, this);
var questions=this.state.questions.map(函数(问题,索引){
返回(
);
},这个);
按照pashaplus的回答,您还可以像下面这样将上下文参数传递给map函数:
var questions = this.state.questions.map(function (question, index) {
return (
<Question
key={index}
index={index}
src={question}
handleAddChoice={this.onAddChoice} />
);
}, this);
var questions=this.state.questions.map(函数(问题,索引){
返回(
);
},这个);
按照pashaplus的回答,您还可以像下面这样将上下文参数传递给map函数:
var questions = this.state.questions.map(function (question, index) {
return (
<Question
key={index}
index={index}
src={question}
handleAddChoice={this.onAddChoice} />
);
}, this);
var questions=this.state.questions.map(函数(问题,索引){
返回(
);
},这个);
按照pashaplus的回答,您还可以像下面这样将上下文参数传递给map函数:
var questions = this.state.questions.map(function (question, index) {
return (
<Question
key={index}
index={index}
src={question}
handleAddChoice={this.onAddChoice} />
);
}, this);
var questions=this.state.questions.map(函数(问题,索引){
返回(
);
},这个);