我目前遇到了 TypeError: getState 不是函数的错误。
我正在尝试类似于此示例的操作:http://redux.js.org/docs/advanced/AsyncActions.html
在 action.js 中出现了该错误。
export const fetchCategoriesIfNeeded = (dispatch, getState) => {
if(shouldFetchCategories(getState())){
return dispatch(fetchCategories())
}
}
App.js
componentDidMount(){
this.props.dispatch(fetchCategoriesIfNeeded())
}
...
const mapStateToProps = (state, props) => {
return {
isFetching: state.isFetching,
categories: state.categories
}
}
reducer.js
function data (state = initialState, action){
switch(action.type){
case RECEIVE_CATEGORIES:
return {
...state,
isFetching: false,
categories: action.categories
}
case REQUEST_CATEGORIES:
return {
...state,
isFetching: true
}
default:
return state
}
return state
}
为了可读性,我省略了部分代码。
我也尝试过这种方法,但是收到了 TypeError: dispatch 不是函数 的错误信息。
export function fetchCategoriesIfNeeded(){
return(dispatch, getState) =>{
var state = getState()
if(shouldFetchCategories(state)){
dispatch(fetchCategories())
}
}
}
this.props.dispatch
,但名称让我相信)你的意思是this.props.dispatch(fetchCategoriesIfNeeded)
。 - user4639281