我将2个值传递给子组件:
- 要显示的对象列表
- 删除功能
我使用.map()函数来显示对象列表(如react教程页面中给出的示例),但该组件中的按钮在渲染时触发onClick函数(不应在渲染时触发)。我的代码如下所示:
module.exports=React.createClass({
render:function(){
var taskNodes=this.props.todoTasks.map(函数(todo){
返回(
<;div>;
{todo.task}
<;button type=“submit”onClick={this.props.removeTaskFunction(todo)}>;submit<;/button>;
<;/div>;
);
},这个);
返回(
<;div className=“todo任务列表”>;
{taskNodes}
<;/div>;
);
}
});
我的问题是:onClick函数为什么会在渲染时启动,以及如何使其不启动
因为您正在调用该函数而不是将该函数传递给onClick,所以将该行更改为:
<;button type=“submit”onClick={()=>;{this.props.removeTaskFunction(todo)}>;提交</按钮>;
=>称为箭头函数,该函数在ES6中引入,将在React 0.13.3或更高版本上得到支持