首页 > 解决方案 > API url参数更改后React,Redux调用动作

问题描述

我遇到了一个无论如何都无法解决的问题。给定这个带有 url 参数的 API 调用。参数更改后,组件应立即获取新数据。因此,如果日期发生变化,redux 应该使用新日期再次调用此函数并显示新数据。

我的代码在action.js中:

 export const getSingleDoctorAppointments = (clinicId, doctorId, date, 
  appointmentTypeId) => dispatch => {
 if (date !== null && date !== undefined) {
    const url = `${apiAddress}DoctorAppointment?clinicId=${clinicId}&doctorId=${doctorId}&date=${date.getDate() +
        '/' +
        (date.getMonth() + 1) +
        '/' +
        date.getFullYear()}&appointmentTypeId=${appointmentTypeId}&insuranceType=&overview=true`;

    axios
        .get(url)
        .then(res =>
            dispatch({
                type: GET_SINGLE_DOCTOR_APPOINTMENTS,
                payload: res.data
            })
        )
        .then(
            dispatch({
                type: PROFILE_LOADING,
                payload: 'Loading Profile'
            })
        )
        .catch(err =>
            dispatch({
                type: GET_SINGLE_DOCTOR_APPOINTMENTS,
                payload: null
            })
        );
}
};

在这个函数之后,调用我想用新参数获取新数据:

export const getSelectedDate = date => dispatch => {
dispatch({
    type: GET_SELECTED_DATE,
    payload: date
});
};

我已经在组件本身内部尝试了 componentWillRecieveProps。没有工作。我希望这是可以理解的。我猜这是因为异步和同步调用。

标签: reactjsredux

解决方案


推荐阅读