React Redux <Provider>, возвращающий только объект хранилища - PullRequest
0 голосов
/ 20 октября 2019

Методы избыточности getState (), subscribe () и т. Д. Не входят в мой компонент, а только исходный объект хранилища входит в подпорки компонента. Что я могу сделать с этим, чтобы решить эту проблему?

Журнал операций

store: {pending: false, fetchFailed: false, санкционировано: false, hash: '', имя пользователя:'',}

App.js

import React from 'react';

import Main from './views/Main';
import Auth from './views/Auth';

import {createAppContainer} from 'react-navigation';
import {createStackNavigator} from 'react-navigation-stack';

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

const AppNavigator = createStackNavigator({
    Main: {
        screen: Main,
        path: 'Main',
    },
    Auth: {
        screen: Auth,
        path: 'Auth',
    },
}, {
    initialRouteName: 'Auth',
    defaultNavigationOptions: {
        header: null,
    },
});

const AppNavigationContainer = createAppContainer(AppNavigator);

const config = {
    pending: false,
    fetchFailed: false,
    authorized: false,
    hash: '',
    username: '',
};

const store = initStore(config);

const App = () => {
    return (
        <Provider store={store}>
            <AppNavigationContainer data={store} /> // Don't work data prop
        </Provider>
    );
};

export default App;

Store.js

import {createStore, applyMiddleware} from 'redux';
import logger from 'redux-logger';
import thunk from 'redux-thunk';
import reducer from '../reducers/reducers';

const initStore = (preloadStore) => {
    const store = createStore(reducer, preloadStore, applyMiddleware(thunk, logger));
    return store;
};

export default initStore;

Auth.js

// some code...
export default connect(
    (store) => ({
        store,
    }),
    (dispatch) => ({
        dispatch,
    }),
)(Auth);

Ответы [ 2 ]

0 голосов
/ 21 октября 2019

Вы неправильно понимаете, как работает mapState. Аргумент не экземпляр хранилища , аргумент хранилище состояние .

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

Пожалуйста, смотрите страницу документации React-Redux по использованию mapStateToProps для инструкций.

0 голосов
/ 21 октября 2019

Команда Use не может передавать подобные реквизиты в контейнер навигации. Вам нужно использовать screenProps.

Однако в этом случае кажется, что вы делаете что-то не так. Вы не должны получить доступ к store в контексте. Вместо этого выставьте конкретные элементы состояния, которые вы хотите получить: https://react -redux.js.org / api / connect

...