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

时间:2018-02-10 18:23:10

标签: javascript react-native redux redux-thunk

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

期望减速器成为一种功能。 createStore

我已经调试了4天了,我看不出与我的代码有什么不同,而不是我到目前为止看过的任何教程或stackoverflow问题。任何帮助都会非常感激,因为我完全陷入困境。

存储\ 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;

终极版\减速器\ index.js

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

const rootReducer = combineReducers({
    users_reducer
});

export default rootReducer;

终极版\减速器\ 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;
    }
}

1 个答案:

答案 0 :(得分:0)

根据您的store\index.js,您似乎忘了从applyMiddleware导入redux

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;