javascript - react 的this.state上的数组为什么push得到的是数字而concat才会返回真实的数组
天蓬老师
天蓬老师 2017-04-10 15:23:00
[JavaScript讨论组]

在学习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 后才能正常返回 ??

求解 ??

天蓬老师
天蓬老师

欢迎选择我的课程,让我们一起见证您的进步~~

全部回复(2)
阿神

push的返回值,本来就不是数组,是新数组的长度。
this.state.taskList.push({taskName:value,author:'test',time:'10:15'});
var tasks = this.state.taskList;

PHPz

其实是对 ECMA 的 array 的 push, contact 方法的理解不对。参考 MDN 的解释:

Array.prototype.push()

方法添加一个或多个元素到数组的末尾,并返回数组新的长度(length 属性值)

Array.prototype.concat()

将传入的数组或非数组值与原数组合并,组成一个新的数组并返回.

热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习
PHP中文网抖音号
发现有趣的

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号