【问题标题】:How to do something inside component after triggering a redux action?触发 redux 动作后如何在组件内部做一些事情?
【发布时间】:2019-11-01 04:08:15
【问题描述】:

我想在一个动作完成后在组件内部做一些事情。 例如,我想在请求成功完成后向用户显示模式,或者如果请求成功完成,则禁用某些元素。

我应该使用回调吗?还是承诺?如果是,那么如何

export const fetchHorizontalSpecialProductsList=(virtinId)=> {
    return (dispatch) => {
        dispatch({
            type: Types.REQUEST_FETCH,
        });
        HomeApi().specialProducts({vitrinId:virtinId,rows:8,page:0,frontTypeList:["SPECIAL"]}).then((response) => {
            dispatch({
                type: Types.REQUEST_SUCCESS,
                payload: response,
            });
//
.then(probably here)
//
        }).catch((response) => {
            dispatch({
                type: Types.REQUEST_FETCH_FAIL,
                payload: response,
            });
        });
    };
};

当请求成功时,我需要显示一个模态

【问题讨论】:

    标签: reactjs react-native redux redux-thunk


    【解决方案1】:

    你只需要连接到 Redux 存储,例如,在 Redux 状态下你应该声明这些属性: 成功:假/真。

    然后接收到的操作是 REQUEST_FETCH_FAIL 或 REQUEST_SUCCESS,你只需要在 reducer 中使用 switch..case 语句将变量更改为 true/false。

    你的容器连接到 Redux store,根据 props 成功真假,你可以做你想做的事,

    【讨论】:

    • 是的,谢谢。即使我每天都使用这种方法,但我不知道为什么我认为会有另一种方法
    • 我应该如何知道状态已更新,我的意思是我需要像广播接收器这样的东西。或者可能在 componentWillUpdate 或 DidUpdate 中?
    • 通常我在componentWillReceiveProps(nextProps)中使用,我们可以知道if (nextProps.success),然后我们可以做一些事情()。
    • 只需通过connectreact-redux 连接您的组件来读取redux 状态。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-09-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多