質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
Redux

Reduxは、JavaScriptアプリケーションの状態を管理するためのオープンソースライブラリです。ReactやAngularで一般的にユーザーインターフェイスの構築に利用されます。

JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

React.js

Reactは、アプリケーションのインターフェースを構築するためのオープンソースJavaScriptライブラリです。

Q&A

解決済

1回答

640閲覧

React + ReduxでCould not find "store" in the context of "Connect(Nav)". が出ます。

iphonesukisuki

総合スコア12

Redux

Reduxは、JavaScriptアプリケーションの状態を管理するためのオープンソースライブラリです。ReactやAngularで一般的にユーザーインターフェイスの構築に利用されます。

JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

React.js

Reactは、アプリケーションのインターフェースを構築するためのオープンソースJavaScriptライブラリです。

0グッド

1クリップ

投稿2019/06/18 01:09

翔泳社の「React入門」という本に従い、React + Redux + react-router-dom + connected-react-routerを使ってウェブアプリを作ったのですが、下のようなエラーが出て実行できません。

ネットでも同じエラーの質問が多々ありましたが、どれを試してみても解決できませんでした。

解決策がわかる方、教えていただけないでしょうか?

Could not find "store" in the context of "Connect(Nav)". Either wrap the root component in a <Provider>, or pass a custom React context provider to <Provider> and the corresponding React context consumer to Connect(Nav) in connect options.

バージョンは下のとおりです。
"connected-react-router": "^6.4.0",
"react": "^16.8.6",
"react-dom": "^16.8.6",
"react-redux": "^6.0.0",
"react-router-dom": "^5.0.1",

ソースコード

index.js

javascript

1import React from 'react'; 2import ReactDOM from 'react-dom'; 3import { Provider } from 'react-redux'; 4import { ConnectedRouter } from 'connected-react-router'; 5import createBrowserHistory from 'history/createBrowserHistory'; 6import './index.css'; 7import App from './App'; 8import * as serviceWorker from './serviceWorker'; 9import createStore from './createStore'; 10 11// historyインスタンスの作成 12const history = createBrowserHistory(); 13 14// storeの作成 15const store = createStore(history); 16 17ReactDOM.render( 18 <Provider store={store}> 19 <ConnectedRouter history={history}> 20 <App /> 21 </ConnectedRouter> 22 </Provider> 23, document.getElementById('root')); 24 25serviceWorker.unregister(); 26

App.js

javascript

1import React from 'react'; 2import { Route, Link } from 'react-router-dom'; 3import Ranking from './containers/Ranking'; 4import Nav from './containers/Nav'; 5 6function App() { 7 return ( 8 <div className="App"> 9 <Nav /> 10 11 <Route path="/all" component={Ranking}></Route> 12 <Route 13 path="/category/:id" 14 render={ 15 ({match}) => <Ranking categoryId={match.params.id}></Ranking>} 16 ></Route> 17 </div> 18 ); 19} 20 21export default App;

createStore.js

javascript

1import { 2 createStore as reduxCreateStore, 3 combineReducers, 4 applyMiddleware, 5} from 'redux'; 6import logger from 'redux-logger'; 7import thunk from 'redux-thunk'; 8import { connectRouter, routerMiddleware } from 'connected-react-router'; 9 10import * as reducers from './reducers'; 11 12// historyはsrc/index.jsから渡す 13export default function createStore(history) { 14 return reduxCreateStore( 15 combineReducers({ 16 ...reducers, 17 router: connectRouter(history), 18 }), 19 applyMiddleware( 20 logger, 21 thunk, 22 routerMiddleware(history) 23 ) 24 ); 25}

containers/Nav.js

javascript

1import { connect } from 'react-redux'; 2import Nav from '../components/Nav'; 3 4const mapStateToProps = state => ({ 5 categories: state.shopping.categories 6}); 7 8export default connect(mapStateToProps)(Nav); 9

components/Nav.js

Javascript

1import React from 'react'; 2import PropTypes from 'prop-types'; 3import { Link } from 'react-router-dom'; 4 5export default function Nav({ categories }) { 6 const to = category => ( 7 category.id === '1' ? 8 'all' : 9 `/category/${category.id}` 10 ); 11 12 return ( 13 <ul> 14 {categories.map(category => ( 15 <li key={`nav-item-${category.id}`}> 16 <Link to={to(category)}></Link> 17 </li> 18 ))} 19 </ul> 20 ); 21} 22 23Nav.propTypes = { 24 categories: PropTypes.arrayOf( 25 PropTypes.shape({ 26 id: PropTypes.string.isRequired, 27 name: PropTypes.string.isRequired, 28 }) 29 ).isRequired 30};

ご回答のほどよろしくお願いいたします。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

自己解決

もう一度npm startをしたら解決できました!

投稿2019/06/18 09:02

iphonesukisuki

総合スコア12

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問