将 Redux 添加到 React-Native 应用程序?

Adding Redux to React-Native App?

我正在尝试将 Redux 添加到 React Native 应用程序并收到以下错误:

预计减速器是一个函数。 创建商店

我已经对此调试了 4 天,与我目前看过的任何教程或 Whosebug 问题相比,我看不出我的代码有什么不同。任何帮助将不胜感激,因为我完全被困住了。

store\index.js

import { createStore } from 'redux';
import rootReducer from '../redux/reducers/index';
import thunk from 'redux-thunk';

let store = createStore(
    rootReducer,
    applyMiddleware(thunk)
);

export default store;

redux\reducers\index.js

import { combineReducers } from 'redux';
import users_reducer from './users_reducer';

const rootReducer = combineReducers({
    users_reducer
});

export default rootReducer;

redux\reducers\users_reducer.js

import * as types from '../actions/users_action';
const defaultState = {

    isAuthenticated: false,
    isFetchingIsRegistered: false,
    isRegistered: false,
    email: '',
    firstname: '',
    lastname: '',
    imageUrl: '',
    defaultSport: 0,
    sports: [],
    authenticationToken: '',
    refreshToken: ''
}

export default function reducer(state = defaultState, action) {
    switch (action.type) {
        case 'REGISTERUSER':
            return Object.assign({}, state, {
                isRegistered: true,
                email: action.email,
                firstname: action.firstname,
                lastname: action.lastname,
                imageUrl: action.imageUrl,
                authenticationToken: action.authenticationToken,
                refreshToken: action.refreshToken
            });
        case 'AUTHENTICATUSER':
            return Object.assign({}, state, {
                isAuthenticated: action.isAuthenticated
            });
        case 'REQUEST_ISREGISTERED':
            return Object.assign({}, state, {
                isFetchingIsRegistered: true
            });
        case 'RECEIVE_ISREGISTERED':
            return Object.assign({}, state, {
                isFetchingIsRegistered: false,
                isRegistered: true
            });

        case types.ISREGISTERED_SUCCESS:
            return action.isRegistered
        default:
            return state;
    }
}

根据您的 store\index.js 看来您忘记从 redux 导入 applyMiddleware:

import { createStore, applyMiddleware } from 'redux';
import rootReducer from '../redux/reducers/index';
import thunk from 'redux-thunk';

let store = createStore(
    rootReducer,
    applyMiddleware(thunk)
);

export default store;