无法在“Connect(Home)”的上下文或道具中找到“store”

时间:2017-09-04 12:46:27

标签: react-native react-redux

如何解决此错误?   无法在“Connect(Home)”的上下文或道具中找到“store”。将根组件包装在一个或显式传递“store”作为“Connect(Home)”的支柱。

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>
        );
    }
}

来自商品:

import { createStore, applyMiddleware, compose } from "redux";
import thunk from "redux-thunk";
import makeRootReducer from "./reducers";
import { createLogger } from "redux-logger";

const log = createLogger({ diff: true, collapsed: true });

const store = createStore( makeRootReducer(), initialState, compose(applyMiddleware(...middleware), ...enhancers ));
return store;
};

2 个答案:

答案 0 :(得分:1)

这是一个如何连接它的例子。

  

提供者类

./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; } 档案。

 - images
 -- image1.png
 -- image2.png
 -- thumbnails
 --- thumb1.png
 --- thumb2.png
 - documents
 -- test.pdf

答案 1 :(得分:0)

如果您使用的是react-router,则需要遵循此顺序:

index.jsx -

import { Router, Route, IndexRoute, browserHistory } from 'react-router'


ReactDOM.render(
  <Provider store={store}>
    <div>
        <Router history={browserHistory}>
            <Route path="/" component={App}>
                <Route path="foo" component={Foo}/>
                <Route path="bar" component={App}/>
            </Route>
        </Router>
    </div>
  </Provider>,
  document.getElementById('react-app')
)

package.json -

"react": "^0.14.7",
"react-dom": "^0.14.7",
"react-redux": "^4.3.0",
"react-router": "^2.0.0",
"redux": "^3.2.1",
"react-router-redux": "^4.0.0",
"webpack": "^1.9.8",
"webpack-bundle-tracker": "0.0.5",
"webpack-dev-server": "^1.16.5"