这是我的商店创建,我在applyMiddleware函数中应用了applyMiddleware
import { createStore, combineReducers, applyMiddleware } from 'redux'
// import { composeWithDevTools } from 'remote-redux-devtools'
import logger from 'redux-logger'
import thunk from 'redux-thunk'
import promise from 'redux-promise-middleware'
import tokenReducer from './reducers/tokenReducer'
const rootReducer = combineReducers({
tokenReducer
})
const middleware = applyMiddleware(logger, promise, thunk)
let store = createStore(rootReducer, middleware)
export default store然后我将我的组件连接到存储和mapDispatchToProps
function mapDispatchToProps (dispatch) {
return {
getToken: () => dispatch(fetchTokenFromStorage())
}
}
export default connect(mapStateToProps, mapDispatchToProps)(SplashScreen)这是我的函数fetchTokenFromStorage代码
export function fetchTokenFromStorage () {
return (dispatch) => {
dispatch(getToken())
AsyncStorage.getItem('AuthToken')
.then(function (token) {
dispatch(getTokenSuccess(token))
})
.catch(function () {
dispatch(getTokenFailure())
})
}
}在我的控制台操作中执行this.props.getToken()之后,如下所示:
动作ƒ(调度){ 调度(getToken()); _reactNative.AsyncStorage.getItem('AuthToken').then(function (令牌){ 调度(getTokenSuccess(令牌)); ).catch(函数() { 调度(获取…)
这是我的函数fetchTokenFromStorage代码。React将我的函数转换为动作类型名称。为什么?
发布于 2017-08-18 15:24:31
thunk必须是applyMiddleware中的第一位
const middleware = applyMiddleware(thunk, logger, promise)
https://stackoverflow.com/questions/45759280
复制相似问题