无法读取 react.js 上未定义的 属性 'map'

Cannot read property 'map' of undefined on react.js

你好我是react的初学者,我卡住了Cannot read the 属性 'map' of undefined,我理解是类型错误请帮助我。

import React, { Component } from 'react';
import Message from "./Message";


class MessageList extends Component {
    render() {
        const   { messages } = this.props;
        return messages.map(message => (
            <ul>
                <Message message={message} />
            </ul>
        ));
    }   
}

export default MessageList;

建议的消息可以为空,在这种情况下地图会抛出错误。 但是,您还没有构建 props,这意味着消息将始终为 null。

import React, { Component } from 'react';
import Message from "./Message";


class MessageList extends Component {
constructor(props) {
   super(props);
   // state if you need it.
   this.state = { counter: 0 };
 }
    render() {
        const   { messages } = this.props;
        return messages && messages.map(message => (
            <ul>
                <Message message={message} />
            </ul>
        ));
    }   
}

export default MessageList;

已测试,有效。

你可以尝试使用“空对象”模式来避免当 prop 没有被发送到组件时出现这样的错误,问题不是出在你给我们看的代码上,所以我们帮不了你找到主要问题

渲染方法内部的空对象模式(在本例中也是默认参数):

const   { messages = [] } = this.props;