反应,终极版。为什么我的调度调度函数体?
React, Redux. Why my dispatch dispatches function body?
这是我创建的商店,我正在 applyMiddleware
函数中应用 redux-thunk
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()
后
在我的控制台中,操作如下所示:
action ƒ (dispatch) {
dispatch(getToken());
_reactNative.AsyncStorage.getItem('AuthToken').then(function (token) {
dispatch(getTokenSuccess(token));
}).catch(function () {
dispatch(get…
这是我的函数 fetchTokenFromStorage
代码。 React 将我的函数转换为动作类型名称。为什么?
thunk 必须在 applyMiddleware
中排在第一位
const middleware = applyMiddleware(thunk, logger, promise)
这是我创建的商店,我正在 applyMiddleware
函数中应用 redux-thunk
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()
后
在我的控制台中,操作如下所示:
action ƒ (dispatch) {
dispatch(getToken());
_reactNative.AsyncStorage.getItem('AuthToken').then(function (token) {
dispatch(getTokenSuccess(token));
}).catch(function () {
dispatch(get…
这是我的函数 fetchTokenFromStorage
代码。 React 将我的函数转换为动作类型名称。为什么?
thunk 必须在 applyMiddleware
const middleware = applyMiddleware(thunk, logger, promise)