問題

このエラーが発生し、ソリューションをグーグルで検索しましたが、すべてが正しく設定されているようです。

完全なエラーは次のとおりです。 "Invariant Violation: "Connect(AppComponent)"のコンテキストで "store"を見つけることができませんでした。ルートコンポーネントをaにラップするか、カスタムReactコンテキストプロバイダをConnect(AppComponent)に渡します。

このエラーは、Connect(AppComponent)(renderApplication.js:34)のRCTView(view.js:45)のView(AppContainer.js:98)のView(at AppContainer.js:45)のView(at view.js:45)(AppContainer.js:115)

これは私のコードです:

index.js

 import { Provider } from 'react-redux'
import { createStore } from 'redux';

import App from './app/App';
import appState from './app/redux/reducers';

import {name as appName} from './app.json';

let store = createStore(appState);
export default class AppRoot extends Component {
  render() {
    return (
      <Provider store={store}>
        <App/>
      </Provider>
    );
  }
}

AppRegistry.registerComponent(appName, () => App);
 

app.js

 //import...

class AppComponent extends Component {
  //code..
}

const mapStateToProps = (state, props) => {
  return {}
};

const mapDispatchToProps = (dispatch, props) => {
  return {
    onFavoriteChange: (id, type) => {
      switch(type){
        //cases...
      }
    }
  }
};

const App = connect(
  mapStateToProps,
  mapDispatchToProps
)(AppComponent);

export default App;
 

index.js(in/reducers)

 import { combineReducers } from 'redux';

//imports...

let appState = combineReducers({
    //all import...
});

export default appState;
 

  ベストアンサー

ルートに登録されているAppコンポーネントはAppRootではありません。つまり、ReactはProviderなしでAppをレンダリングして店舗を提供します。次に、connect HOCがエラーをスローします。呼び出しを更新する必要があります。

 AppRegistry.registerComponent(appName, () => AppRoot);
 

  同じタグがついた質問を見る

javascriptreactjsreact-nativereact-redux