Redux:在thunks中的切片缩减器之间放置大量逻辑并共享数据是一种反模式吗?

Redux:在thunks中的切片缩减器之间放置大量逻辑并共享数据是一种反模式吗?,redux,Redux,在Redux样式指南中,强烈建议: 在可能的情况下,尽量使用逻辑来计算 将新状态转换为相应的reducer,而不是在代码中 准备并分派操作(如单击处理程序) 我不确定的是,thunks是否也被认为是某种“代码”。此外,我们还(mis?)使用thunks从其他状态片段中获取数据 这种恶作剧的假设简化代码片段: const addX=x=>(调度,获取状态)=>{ const{data,view}=getState(); const{y}=view;//是的,对于这种情况,thunk将被限定为“发送

在Redux样式指南中,强烈建议:

在可能的情况下,尽量使用逻辑来计算 将新状态转换为相应的reducer,而不是在代码中 准备并分派操作(如单击处理程序)

我不确定的是,thunks是否也被认为是某种“代码”。此外,我们还(mis?)使用thunks从其他状态片段中获取数据

这种恶作剧的假设简化代码片段:

const addX=x=>(调度,获取状态)=>{
const{data,view}=getState();

const{y}=view;//是的,对于这种情况,thunk将被限定为“发送操作的代码”。因此,这里的规则建议,如果可能,操作将只包含
y
,函数调用
doSomeLogicWith(y)
doSomeMoreLogicWith(yy)
理想情况下应存在于减速器内

话虽如此,thunk在发送操作之前对数据进行一些预处理并没有错


样式指南规则只是说,如果在减速器内或减速器外运行特定的逻辑段,如果可能的话,最好在减速器内运行。

感谢@markerikson一如既往地给出了启发性的答案。:)我现在明白了。为了完整性:因为Thunk只是异步的action创建者,这意味着(同步)action创建者在该段中也可以被称为“准备action的代码”(虽然它没有发送),对吗?是的,尽管action创建者很少有任何有意义的逻辑-他们通常只是
返回{type:“todos/addTodo”,payload:“Buy milk”}