2017-09-04 11 views
0

このエラーを解決するにはどうすればよいですか? コンテキストまたは "Connect(Home)"の小道具に "store"が見つかりませんでした。ルートコンポーネントをラップするか、明示的に「ストア(ストア)」を「Connect(ホーム)」の小道具として渡します。コンテキストまたは「接続(ホーム)」の小道具に「ストア」が見つかりません

import React, { Component, PropTypes } from "react"; 
import { Router } from "react-native-router-flux"; 
import scenes from "../routes/scenes"; 
import { Provider } from "react-redux"; 

export default class AppContainer extends Component { 
    static propTypes = { 
     store: PropTypes.object.isRequired 
    } 

    render(){ 
     return (
      <Provider store={this.props.store}> 
       <Router scenes={scenes} /> 
      </Provider> 
     ); 
    } 
} 
+0

プロバイダのストアパラメータは 'createStore'である必要があります。ストアを作成するためのコードを表示できますか? – jose920405

+0

"redux"から{createStore、applyMiddleware、compose}をインポートします。 "redux-thunk"からのインポート・サンク。 "./reducers"からmakeRootRedcerをインポートします。 "redux-logger"から{createLogger}をインポートします。 const log = createLogger({diff:true、collapsed:true}); –

+0

======================================= ===== CONSTストア= CREATESTORE( makeRootReducer()、 初期状態、 COMPOSE( applyMiddleware(...ミドルウェア)、 ...エンハンサー) –

答えて

0

これは、この接続方法の例です。

プロバイダクラス

// Third party. 
import React, { Component } from 'react'; 
import { Provider } from 'react-redux'; 
// App modules 
import setupStore from './utils/setupStore'; //This is the trick 
// Assets Actions 

const store = setupStore(); //==> Here calling the function inside setupStore file 

// App component. 
import App from './App'; 

export default class Root extends Component { 
    render() { 
    return (
     <Provider store={store}> 
     <App /> 
     </Provider> 
    ) 
    } 
} 

./utils/setupStoreファイル。

// Node Core Third party 
import { applyMiddleware, createStore } from 'redux'; 
import thunk from 'redux-thunk'; 
// App Modules 
import rootReducer from '../store'; //Your combine reducer file 

const middleware = applyMiddleware(thunk); 

export default function configureStore() { 
    const store = createStore(rootReducer, middleware); //This is the createStore I was talking to you about. 

    if (module.hot) { 
     module.hot.accept(() => { 
      const nextRootReducer = require('../store/index').default; 
      store.replaceReducer(nextRootReducer); 
     }) 
    } 

    return store; 
} 
関連する問題