React-native-Redux: не удалось найти хранимые данные ни в контексте, ни в подпрограммах подключения (componentName) - PullRequest
0 голосов
/ 25 апреля 2018

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

enter image description here
нажмите, чтобы увеличить изображение

Не уверен, почему я получаю эту ошибку даже после определения хранилища.

index.js (корневая страница)

import React, {Component} from 'react';
import {initStore} from './redux/store';
import {Provider} from 'react-redux';

import App from './App.container';

    const store = initStore();

    class BuddApp extends Component {
      render () {
        return (
          <Provider store={store}>
            <App />
          </Provider>
        );
      }
    }


    export default BuddApp;

Это app.container.js, который находится внутри приложения.

app / app.container.js

import React, {Component} from 'react';
import {connect} from 'react-redux';
import Router from './routes';
import Proptypes from 'prop-types';
import {addNavigationHelpers} from 'react-navigation';

class App extends Component {
  render () {
    const {dispatch, nav, userPreferences} = this.props;
    console.log(this.props)
    return (
        <Router screenProps={userPreferences} navigation={addNavigationHelpers({dispatch, state: nav})}/>
      </Provider>
    );
  }
}

App.propTypes = {
  dispatch: Proptypes.func,
  nav: Proptypes.object,
  userPreferences: Proptypes.object
};

const mapStateToProps = ({nav, userPreferences}) => ({
  nav,
  userPreferences
});

const mapDispatchToProps = (dispatch) => ({
  dispatch
});

export default connect(mapStateToProps, mapDispatchToProps)(App);

app / pages / login.page.js

import React, {Component} from 'react';
import PropTypes from 'prop-types';
import {connect} from 'react-redux';
import Login from '../components/Login/Login.component';
import {NavigationActions} from 'react-navigation';

class LoginPage extends Component {

  onLoginPress(){
    console.log("fsdfds")
    this.props.navigation.navigate('setupProfile')
  }

  render () {
    const {state} = this.props;
    return (
      <Login onLoginPress={this.onLoginPress.bind(this)} />
    );
  }
 }

LoginPage.propTypes = {
  onLoginPress: PropTypes.func
};

const mapStateToProps = (state) => ({
 state:state
});

const mapDispatchToProps = (dispatch) => ({
  saveLoginDetails: dispatch(addProfile(f))
});     

export default connect(mapStateToProps,mapDispatchToProps)(LoginPage);

Это приводит к получению вышеупомянутой ошибки.как вы можете видеть, я передаю хранилище таким же образом, как показано в примере с избыточностью.

Я определил хранилище в неправильном файле?

1 Ответ

0 голосов
/ 26 апреля 2018

Попробуйте так:

import { createStore, applyMiddleware } from "redux"

const store = createStore(
        <<Your combined reducers comes here>>,
        applyMiddleware(<<All your middleware comes here>>))
...