将 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;
我正在尝试将 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;