我是完全陌生的反應,我正在學習一個教程。在本教程中,我有以下組成部分稱爲用戶list.js:Javascript地圖方法在reactjs項目中不起作用
import React, {Component} from 'react';
import {bindActionCreators} from 'redux';
import {connect} from 'react-redux';
class UserList extends Component {
createListItems() {
return this.props.users.map((user) => {
return (
<li>{user.first}</li>
);
});
}
render() {
return (
<ul>
{this.createListItems()}
</ul>
);
}
}
function mapStateToProps(state) {
return {
users: state.users
};
}
export default connect(mapStateToProps)(UserList);
這裏是我的減速器users.js
export default function() {
return [
{
id: 1,
first: 'Bucky',
last: 'Roberts',
age: 71,
description: 'Bucky is a React developer anbd Youtuber',
thumbnail: 'http://i.imgur.com/7yUvePI.jpg'
},
{
id: 2,
first: 'Joby',
last: 'Wasilenko',
age: 27,
description: 'Joby loves the Packers, cheese and turtles',
thumbnail: 'http://i.imgur.com/52xRlm8.jpg'
},
{
id: 3,
first: 'Madison',
last: 'Williams',
age: 24,
description: 'Madi likes her dog but it is really annoying.',
thumbnail: 'http://i.imgur.com/4EMtxHB.jpg'
}
]
}
現在我得到在控制檯中的錯誤:
Uncaught TypeError: Cannot read property 'map' of undefined
我不明白我在做什麼錯,我刪除了地圖函數並返回了其他任何數據,並且它工作正常,除非它試圖映射數據。
看起來像'this.props.users'不是一個數組。顯示你的根減速器。順便說一下,減速器應該有'(狀態,動作)'簽名,所以重寫你的用戶減速器。 –