在尝试用React + Redux来写项目.
框架流程都已经搭好, 在最后组件里面取属性的时候, 发现取到的是’undefined’.
然后去一步一步的找, 最后发现是在creatStore
的时候, 创建出来的Store
压根就没有拿到Reducer
给他的State
.
很头疼, 不知道是哪里出了问题, 请大神指教.
#####再划下重点, 创建的store没有拿到作为参数传递进来的Reducer所持有的初始状态!
上代码
####configureStore.js
import { AsyncStorage } from 'react-native';
import { applyMiddleware, createStore, compose } from 'redux';
import thunk from 'redux-thunk';
import createLogger from 'redux-logger';
import {persistStore, autoRehydrate} from 'redux-persist';
import reducers from '../reducers';
var isDebuggingInChrome = __DEV__ && !!window.navigator.userAgent;
var logger = createLogger({
predicate: (getState, action) => isDebuggingInChrome,
collapsed: true,
duration: true,
});
var middlewares = compose(applyMiddleware(thunk, logger), autoRehydrate());
export default function configureStore() {
console.log('Reducer'+reducers)
const store = createStore(reducers, undefined, middlewares);
persistStore(store, {storage: AsyncStorage});
if (isDebuggingInChrome) {
window.store = store;
}
return store;
}
####reducer/prepareConnect
import * as types from '../constants/ActionTypes';
const initialState = {
readyButtonState:false,
appearImage:'./img/bpm1_setwifi_unready@2x.png'
}
export default function prepareConnect(state = initialState,action) {
switch (action.type){
case types.CONNECT_CLICK_READY: {
return Object.assign({},state,{
readyButtonState:action.currentState,
appearImage:action.currentImage,
})
}
break;
default:
return state;
break;
}
}
####reducer/index.js
import { combineReducers } from 'redux';
import prepareConnect from './prepareConnect';
const rootReducer = combineReducers({
prepareConnect
});
export default rootReducer;