2016-10-24 8 views
0

私のデータは私の反応アプリケーションに読み込まれないようです。ここ ステップによってコード工程である:私はルートリデューサに次いでリアクションエラー:未定義のプロパティ 'map'を読み取ることができません

export default function books(){ 
    return ([ 
     {title:'A',pages:100}, 
     {title:'B',pages:200}, 
     {title:'C',pages:300}, 
     {title:'D',pages:400} 
    ]); 
} 

:状態の データは./booksにある

import books from './books'; 
import {combineReducers} from 'redux'; 

const rootReducer = combineReducers({ 
    books:books 
}); 


export default rootReducer; 

ルート減速が正常ルート要素に追加されます:

import rootReducer from './reducers/books'; 
import {createStore} from 'redux'; 
import {Provider} from 'react-redux'; 

const Store= createStore(rootReducer); 

ReactDOM.render(
    <Provider store={Store}> 
    <App /> 
    </Provider>, document.getElementById('root') 
); 

、その後、ブックリストのコンポーネントに私はそれを使用しようとしています:

残念ながら、それはエラーで文句を言う:

Uncaught TypeError: Cannot read property 'map' of undefined 

this.props.booksが定義されていないようですが、それはいけません。 問題は何ですか?

+0

mapStateToProps内にconsole.logを行うと、チェックしてみてください状態は図書 'はconsole.log(状態)が含まれている場合' – KOTIOS

+0

それは私はあなたが(輸出デフォルト接続(mapStateToProps、ヌル) '以下のようコネクト機能を変更すべきだと思う – Salman

+0

データが含まれていますBookList); ' – KOTIOS

答えて

0

問題は、間違ったcombineReducers関数を使用していることです。それは減速機を受け入れる。あなたの本の機能は減速機のようには見えません。あなたはredux-actパッケージのcreateReducer機能を使用してレデューサー機能を作成することができます。また、減速機がここにどのように見えるべきかを読む:http://redux.js.org/docs/basics/Reducers.html

ショート手:

const bookReducer = createReducer(
    { 
    }, 
    books 
); 
const rootReducer = combineReducers({ 
    books: bookReducer 
}) 
0

私はstate.booksstateからbooksを取り除くmapStateToProps

function mapStateToProps(state){ 
    return { books:state}; 
} 

を変更したときに解決される問題が、それはこのようなものです、なぜまだ私は、知りません。

ご存知ですか?

関連する問題