gpt4 book ai didi

javascript - Action 创建者是否有必要返回 Action ?

转载 作者:行者123 更新时间:2023-12-01 02:42:40 32 4
gpt4 key购买 nike

我有一个 Action 创建器,它接受一个 id 和一个回调函数。它向服务器发送请求以执行某些操作并返回一个虚拟操作。我在这里想做的就是调用回调函数并退出,因为该虚拟操作对我来说没有用处,例如喜欢帖子。我只需要服务器知道用户喜欢某个帖子,我不需要更改某些状态,我可以通过回调更改“喜欢”按钮的状态。所以我的问题是我们是否需要 Action 创建者来返回 Action 。这是我的代码

export const deleteProduct = (id,cb) => async (dispatch) => {
let res = await axios.delete(`${BASE_URL}/api/v1/product/${id}`,
{withCredentials:true})
cb();
dispatch({type: DUMMY, payload : res.data});
};

删除产品后,我可以在触发回调时从列表中隐藏该产品。我是否需要显式调用调度还是可选的。 ?我正在使用 Redux-thunk 来处理 axios Promise。

最佳答案

redux-thunk中,调度是完全可选的。事实上,其中之一是 main motivations是提供有条件的调度。

所以是的,你完全可以这样做:

export const deleteProduct = (id,cb) => async () => {
let res = await axios.delete(`${BASE_URL}/api/v1/product/${id}`,
{withCredentials:true})
cb();
};

但是,我相信这打破了 redux 的主要概念之一,即 unidirectional data flow 。这一概念是数据应该只朝一个方向流动。 View 调度一个操作来更新存储,以触发渲染来更新 View 。 View 不应从结果中分派(dispatch)、操作和重新渲染。

基本上,如果您想在删除后从列表中隐藏该项目,您应该调度一个操作来更新存储中的数据并让 react-redux 重新渲染组件,其中不包含已删除的项目。

关于javascript - Action 创建者是否有必要返回 Action ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47446543/

32 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com