reactjs - 地图功能无法在 reactJS 应用程序中实现
问题描述
我是新来的反应,并从教程创建了一个简单的应用程序。在教程中,他们使用了无状态组件,而我改为使用有状态组件。但我收到了这个错误
TypeError:无法读取未定义的属性“地图”
我不知道我的代码哪里出错了。对我来说似乎没问题。
消息列表.js
import React, { Component } from 'react';
import MessageView from './message-view';
class MessageList extends Component {
state = {
messages: [
{
from: 'John',
message: 'The event will start next week',
status: 'unread'
},
{
from: 'Martha',
message: 'I will be traveling soon',
status: 'read'
},
{
from: 'Jacob',
message: 'Talk later. Have a great day!',
status: 'read'
}
]
};
render() {
const { messageViews } = this.state.messages;
console.log(messageViews);
return (
<div>
<h1>List of Messages</h1>
{messageViews.map(msgList => (
<MessageView message={msgList.messages} />
))}
</div>
);
}
}
export default MessageList;
消息视图.js
import React, { Component } from 'react';
class MessageView extends Component {
render() {
const list = this.props.message;
console.log(list);
return (
<div className="container">
<div className="from">
<span className="label">From : </span>
<span className="value">{list.name} </span>
</div>
<div className="status">
<span className="label">Status : </span>
<span className="value">{list.status}</span>
</div>
<div className="message">
<span className="label">Message : </span>
<span className="value">{list.content} </span>
</div>
</div>
);
}
}
export default MessageView;
我试过搜索为什么地图功能不起作用但没有用。我对反应很陌生。有人可以指导我吗?
解决方案
TypeError:无法读取未定义的属性“地图”
messageViews
为了解决这个错误,你应该像这样删除大括号
render() {
const messageViews = this.state.messages; //removed the curly brackets
return (
<div>
<h1>List of Messages</h1>
{messageViews.map(msgList => (
<MessageView message={msgList.messages} />
))}
</div>
);
}
因为当你这样写时:
const { messageViews } = this.state.messages
它将尝试解构this.state.messages
对象,正如我们所见,它们不messageViews
存在任何属性。因此,messageViews
是未定义的。
然后,当您使用map()
类似的方法时messageViews.map(msgList => (...))
,程序将尝试调用未定义变量的map()
方法。这就是您收到错误消息的原因:无法读取未定义的属性“地图”
推荐阅读
- wordpress - WPPost 错误 hasposts 函数未定义
- mysql - Power BI + MySQL - 意外错误:连接必须有效且打开
- python - 如何使用列表打印未知数量的字典键来识别键?
- avplayer - 在 Tizen TV 中前进/后退媒体时如何解决“PLAYER_ERROR_SEEK_FAILED”的问题?
- electron - 电子包装器
- yii - 迁移/向上中的异常“yii\base\UnknownPropertyException”
- karate - 加特林、空手道和经典喂食器
- string - 为什么单字母字符串有 Char 类型?
- java - 我要求它识别图像中存在的字符,我们要求它读取内容并将内容存储在变量中
- java - java - 如何在java中给出时间戳值作为参数?