Не удалось найти «store» в контексте «Connect (AppComponent)» - PullRequest
0 голосов
/ 06 февраля 2019

Я получаю эту ошибку, и я погуглил решения, но похоже, что все должно быть настроено правильно.

Полная ошибка: «Инвариантное нарушение: Не удалось найти« хранилище »в контексте»Connect (AppComponent) ". Либо оберните корневой компонент в a, либо передайте пользовательский поставщик контекста React и соответствующий получатель контекста React в Connect (AppComponent) в параметрах соединения.

Эта ошибка находится по адресу: в Connect(AppComponent) (в renderApplication.js: 34) в RCTView (в View.js: 45) в View (в AppContainer.js: 98) в RCTView (в View.js: 45) в View (в AppContainer.js: 115)) в AppContainer (на renderApplication.js: 33)

Это мой код:

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 (в / редукторы)

import { combineReducers } from 'redux';

//imports...

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

export default appState;

1 Ответ

0 голосов
/ 06 февраля 2019

Компонент App, зарегистрированный в корне, не является AppRoot.Это означает, что React рендерит App без Provider для предоставления магазина.Тогда connect HOC выдает ошибку.Вы должны обновить звонок на:

AppRegistry.registerComponent(appName, () => AppRoot);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...