![](/img/trans.png)
[英]reactjs - Uncaught TypeError: Cannot read property 'map' of undefined
[英]Uncaught TypeError: Cannot read property 'map' of undefined at {Component}.render in ReactJs
我正在將數組傳遞給側邊欄組件的道具,我想在我的子組件中訪問它...
import React, { Component } from 'react';
import PropTypes from 'prop-types';
import './styles.scss';
import Sidebar from './../../components/sidebar';
import Header from './../../components/header';
export default class Dashboard extends Component {
buildComponent = props => {
console.log("Props", props.children);
var items = [
{
"link": "facebook.com",
"title": "Facebook"
},
{
"link": "google.com",
"title": "Google"
}
]
return (
<div>
<Header />
<div className="container-fluid">
<div className="row">
<Sidebar name={items} />
<div className="col-sm-9 col-sm-offset-3 col-md-10 col-md-offset-2 main">
{props.children}
</div>
</div>
</div>
</div>
);
}
render() {
return this.buildComponent(this.props);
}
}
Dashboard.propTypes = {
children: PropTypes.any
};
並希望在子組件中獲得道具數據。
import React, { Component } from 'react';
import { Link } from 'react-router-dom';
import PropTypes from 'prop-types';
export default class Sidebar extends Component {
constructor() {
super();
}
render() {
return (
<div className="row">
<div className="col-sm-3 col-md-2 sidebar">
<ul className="nav nav-sidebar">
<li><a href="#">Dashboard</a></li>
<li className="fa fa-plus"><Link to="/feed">For Your Approval</Link></li>
<li><Link to="/article">Active</Link></li>
<li><a href="">{this.props.items.map((title) => <li>{title}</li>)}</a></li>
<li><a href="#">Rejected</a></li>
<li><a href="#">Send For Approval</a></li>
<li><a href="#">Draft</a></li>
<li><a href="#">Archied</a></li>
</ul>
<ul className="nav nav-sidebar">
<li><a href="">Brand Safety</a></li>
<li><a href="">Report</a></li>
</ul>
</div>
</div>
);
}
}
我正在學習教程,但遇到此錯誤,我是Reactjs的新手,請幫忙....
您沒有將“ items”道具傳遞給補充工具欄。 您只是在傳遞名字。 您需要執行<Sidebar items={items}>
側邊欄組件中的props,您作為name
傳遞。 因此,請執行以下操作:
this.props.name && this.props.name.map(...)
只有在名稱props未定義的情況下,map方法才有效。 並且有必要檢查它是否有價值。 因為在初始渲染時(即使渲染為null,也渲染),所以使用map可能會出錯。 因此,檢查它是一個好習慣。
將console.log(this.props)
添加到Sidebar
的render方法中,以查看收到的內容。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.