React,Reduxでリスト中の項目をクリックすると詳細が表示される、という仕組みを作りたいです。
リストを表示するRecipesというコンポーネントを作ったのですが、コンポーネント内で「TypeError: Cannot read property 'map' of undefined」のエラーが出てしまいます。
RecipeListが上手く読み込めていないのかと思いますが、reducersからcomponentsのどこで受け渡しに失敗しているのかわかりません。
どのように修正したら良いのかアドバイスをお願いいたします。
可能であれば、このような時にどの段階で(reducer、container、componentsのどこで)要素の受け渡しに失敗しているのか、確認する方法も合わせて教えていただけますと幸いです。
よろしくおねがいします。
index.js
import React from 'react'; import ReactDOM from 'react-dom'; import {Provider} from 'react-redux'; import {createStore} from 'redux'; import registerServiceWorker from './registerServiceWorker'; import App from './components/App'; import rootReducer from './reducers'; const store = createStore(rootReducer); ReactDOM.render( <Provider store={store}> <App /> </Provider>, document.getElementById('root') );
reducers/RecipesReducers.js
const RecipesReducer = () => { return [ {title: '白米', image: '', author: '白米さん', comment: '白くてピカピカ'}, {title: '卵焼き', image: '', author: '卵さん', comment: 'しっとりふわふわ'}, {title: '味噌汁', image: '', author: '味噌汁さん', comment: '温かくて身体にしみる!'} ] } export default RecipesReducer;
containers/RecipeList.js
import {connect} from 'react-redux'; import Recipes from '../components/Recipes'; const mapStateToProps = state => { return{ recipeList: state.recipesReducer }; } export default connect (mapStateToProps, null)(Recipes);
components/Recipes.js
import React from 'react'; const Recipes = ({RecipeList}) => { //↓この行でエラーが出ます const list = RecipeList.map(recipe => { return( <li key = {recipe.title} > {recipe.title} </li> ); }); return <ul>{list}</ul> } export default Recipes;
components/App.js
import React from 'react'; import {Component} from 'react'; import Recipes from '../containers/RecipeList' import RecipeDetail from '../containers/RecipeDetail' const App = () => { return ( <div> <Recipes /> <RecipeDetail /> </div> ); }; export default App;
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2018/05/14 13:53
2018/05/14 13:56 編集
2018/05/14 13:59 編集
2018/05/14 14:03
2018/05/14 14:09
2018/05/14 15:21