雖然學習React
與Redux
只是試圖渲染一些用戶的詳細信息。TypeError:無法讀取Redux中未定義的屬性「地圖」
獲取典型錯誤TypeError: Cannot read property 'map'
。我可以理解,mapStateToProps
方法中的state.users
是undefined
。嘗試使用constructor
來設置初始狀態。但沒有運氣。我錯過了一些微不足道的東西嗎?誤差上返回this.props.users.map((用戶)=> {線createListItems()方法。
容器\ userList.js
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) => { // here is the error
return (
<li key={user.id}>
{user.firstName} {user.lastName}
</li>
);
} );
}
render(){
return(
<ul>
{this.createListItems()}
</ul>
);
}
}
function mapStateToProps(state) {
return {
users: state.users
};
}
export default connect(mapStateToProps)(UserList);
減速器\ userReducers.js
export default function() {
return [
{
id: 1,
firstName: "sally",
lastName: "brown",
age: 12,
location: "lund"
},
{
id: 2,
firstName: "Terance",
lastName: "Smith",
age: 23,
location: "London"
},
{
id: 3,
firstName: "Petter",
lastName: "Phantom",
age: 34,
location: "Manchester"
}
]
}
減速器\ index.js
import { combineReducers } from 'redux';
import UserReducers from './userReducers';
const allReducers = combineReducers({
users: UserReducers
});
export default allReducers;
的src \ index.js
import React from 'react';
import ReactDOM from 'react-dom';
import './index.css';
import App from './components/app';
import registerServiceWorker from './registerServiceWorker';
import { createStore } from 'redux';
import allReducers from './reducers/userReducers';
import { Provider } from 'react-redux';
let store = createStore(allReducers);
ReactDOM.render(
<Provider store={store}>
<App />
</Provider>
, document.getElementById('root'));
registerServiceWorker();
這是所有的代碼還是你爲了簡潔而留下了一些東西?我沒有看到你的減速器實際上在商店中設置狀態。 – sma
您不會調度任何操作來設置「用戶」狀態。可以預先加載redux狀態,也可以派發一個動作,以用戶狀態更新該狀態。 –
這是迄今爲止我所有的代碼。我還沒有使用過任何「行動」。沒有調度一個Action,直到我開始使用Action才能加載狀態? – shaz