无法在redux存储中重置变量

时间:2018-05-28 13:58:45

标签: react-native react-redux

目前我还是Redux的新人。

App有一个包含类别的页面,单击其中一个会打开一个新窗口,其中包含可用条目列表。 此窗口的位置处于可以开始查询数据的位置。

问题是,当应用启动窗口时,执行清除状态的操作。但由于某种原因,具有位置的变量不会改变。

(我知道,我可以将此位置移动到组件变量,但作为新手,我想了解问题)

下载项目的行动:

getLatestDataInCategory: (category, currNum) => {
return (dispatch) => {
    dispatch({type: actionTypes.DATA_IN_CATEGORY_LOADING_ENABLED})
    fetch('http://************/api/rf_api/get_rf_list.php?category='+category+'&startFrom='+currNum)
    .then(res => res.json())
    .then((res) => {
        dispatch({type: actionTypes.DATA_IN_CATEGORY_LOADING_DISABLED})
        dispatch({type: actionTypes.DATA_IN_CATEGORY_ADD_DATA, payload: {data: res.results}})
        dispatch({type: actionTypes.DATA_IN_CATEGORY_ADD_NUM})
    }).catch(error => {
        dispatch({type: actionTypes.DATA_IN_CATEGORY_ERROR, payload: {error: error}})
        dispatch({type: actionTypes.DATA_IN_CATEGORY_LOADING_DISABLED})
        console.log(error)
        })

 }
}

清除数据的行动:

clearData: () => {
return (dispatch) => {
    dispatch({type: actionTypes.DATA_IN_CATEGORY_CLEAR})
 }
}

减速:

export const reducersDataInCategory = (state = initialStateDataInCategory, action) => {
   const {type, payload} = action

   switch(type) {
        case actionTypes.DATA_IN_CATEGORY_LOADING_ENABLED:
            return{...state,
            isLoading: true}
            break
        case actionTypes.DATA_IN_CATEGORY_LOADING_DISABLED:
            return{...state,
            isLoading: false}
            break
        case actionTypes.DATA_IN_CATEGORY_ADD_DATA:
            return{...state,
            data: [...state.data, ...payload.data],
            error: null}
            break
        case actionTypes.DATA_IN_CATEGORY_ERROR:
            return{...state,
            error: payload.error}
            break
        case actionTypes.DATA_IN_CATEGORY_ADD_NUM:
            return{...state,
            currNum: state.currNum + 30}
            break
        case actionTypes.DATA_IN_CATEGORY_CLEAR:
            return{...state,
            currNum: 0,
            data: []}
            break
        default:
            return state
            break
   }
}

在组件中:

componentDidMount() {
    this.props.clearData()
    const categoryId = this.props.navigation.getParam('categoryId', 1)
    this.props.getLatestFormulasInCategory(categoryId, this.props.currNum)
}

0 个答案:

没有答案