在学习reactjs 的时候,自己动手写一个 TodoList ,遇到一个问题,直接上代码
var ToDosBox = React.createClass({
getInitialState:function(){
return {
taskList:[]
}
},
addCallback:function(e,value){
var tasks = this.state.taskList.push({taskName:value,author:'test',time:'10:15'});
//console.log(tasks);
this.setState({taskList:tasks});
},
render:function(){
return (
<p className="todos-box">
<InputBox ref="inputBox" callback={this.addCallback} />
<h3>Todo List</h3>
<ToDosList items={this.state.taskList} />
</p>
)
}
})
var tasks = this.state.taskList.push({taskName:value,author:'test',time:'10:15'});
此处 tasks 返回的是 1 ; 而不是一个数组 ,,将 push 改成 concat 后才能正常返回 ??
求解 ??
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号
push的返回值,本来就不是数组,是新数组的长度。
this.state.taskList.push({taskName:value,author:'test',time:'10:15'});
var tasks = this.state.taskList;
其实是对 ECMA 的 array 的 push, contact 方法的理解不对。参考 MDN 的解释:
Array.prototype.push()
Array.prototype.concat()