未捕获的类型错误:无法读取未定义的属性“地图”(REACT NATIVE - Javascript)

一直在尝试导入 Json 文件,然后在 React Native 应用程序中探索和显示它。我只是在学习 React Native,同时也在学习 Javascript。


import React, { Component } from 'react';

import {

    Text,

    View,

    AsyncStorage

} from 'react-native';


import{eventos} from './Events';


export default class Admin extends React.Component{


    constructor(props){

        super(props);

        this.state={

            eventos

        }

        try{

            AsyncStorage.getItem(eventos).then((value)=>{

                if(value!=null){

                    console.log("Events esta completo")

                }else{

                    console.log("Events esta vacio")

                }

                this.setState({

                    eventos:JSON.parse(value)

                })

            })

        }catch(err){

            console.log(err)

        }

    }

parseEventsData(){


        console.log("Deberia salir algo")

        return this.state.events.map((eventos,i)=>{

            return(

                <View key={i}>

                    <Text>

                        {eventos.title}

                    </Text>

                    <Text>

                        {eventos.responsible}

                    </Text>

                    <Text>

                        {eventos.description}

                    </Text>

                </View>

            )

        })

}

render(){

    return(

        <View>

            {this.parseEventsData()}

            <Text>No salio nada</Text>                 

        </View>


    );

}

}


接下来是 Json。


回首忆惘然
浏览 192回答 2
2回答

繁星coding

检查您的代码,您会注意到状态变量被称为“eventos”,并且您正在通过“this.state.events”进行映射。只是一个错字。

小怪兽爱吃肉

你有几个问题:您的parseEventsData.&nbsp;在其他任何地方你都叫它eventos,但在这里你叫它events。不确定您打算使用哪个,但不匹配意味着您的调用setState设置的属性与您稍后在parseEventsData.假设您修复了上面的错字,this.state.eventos一开始将是未定义的,并且在您在构造函数中的承诺解决之前不会被定义。当您调用时this.state.eventos.map,您正在调用 map 未定义的值,如您的错误所示。您需要在调用之前检查它是否未定义map,或者您应该将其初始化为一个空数组。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

JavaScript