javascript - React this.state.names.map is not a function
迷茫
迷茫 2017-04-11 12:11:24
[JavaScript讨论组]

1: 遍历数据出错

const Dashboard = React.createClass({
    getInitialState:function(){
        return{
            names:[]
        }
    },
    componentDidMount:function(){    
        var test={
            "list": [
                {
                    "id": 1
                },
                {
                    "id": 7
                },
            ]
        }
        this.setState({names:test})
    },
    render() {
        return (
                <p>
                    {
                        this.state.names.map(function (list) {
                            return <p>Hello, {list.id}!</p>
                        })
                    }
                   
                </p>
            )
    }
})

数据取不到,this.state.names.map is not a function报这个错 是数据类型有问题么,没找出具体问题?

迷茫
迷茫

业精于勤,荒于嬉;行成于思,毁于随。

全部回复(3)
大家讲道理

你的componentDidMount中把names设置为对象了。
对象没有map方法,数组才有

天蓬老师
this.state.names.list.map(function (list) {
                            return <p>Hello, {list.id}!</p>
                        })
巴扎黑

getInitialState 在组建初始化的时候就设定了你想要的 names 的数据,componentDidMount 生命周期方法在组件装载以后执行,在组件的初始化之后。所以此时你的 names 属性在 componentDidMount 中被覆盖为对象 test,但是对象没有数组方法 map()

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

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