Javascript 将useReducer状态传递给另一个useReducer

Javascript 将useReducer状态传递给另一个useReducer,javascript,reactjs,redux,react-hooks,Javascript,Reactjs,Redux,React Hooks,我试图创建一个简单的todo应用程序的搜索,而不是试图通过处理todo的减速机来管理过滤的状态,而是设置另一个useReducer,然后通过Redux上的Redux(这是我的参考)上的Redux上的那个减速机tho(这是我的参考)来管理过滤器,而使用MapStateTrops 问题是,当我将来自todos useReducer的状态传递到我的过滤器缩减器状态时,它不会随着我更改缩减器而更新。这是意料之中的。我的初始值是我的todo的状态(其值为空数组),即使将新todo添加到列表中,它也始终为空

我试图创建一个简单的todo应用程序的搜索,而不是试图通过处理todo的减速机来管理过滤的状态,而是设置另一个useReducer,然后通过Redux上的Redux(这是我的参考)上的Redux上的那个减速机tho(这是我的参考)来管理过滤器,而使用MapStateTrops

问题是,当我将来自todos useReducer的状态传递到我的过滤器缩减器状态时,它不会随着我更改缩减器而更新。这是意料之中的。我的初始值是我的todo的状态(其值为空数组),即使将新todo添加到列表中,它也始终为空

那么,在这种情况下,理想的解决方案是什么

代码:


塑造你的状态取决于你自己——以最有效的方式塑造它。Redux和React对此都不感兴趣。如果将这些状态片段放在一起是有意义的,那么就这样做。使用
useReducer
,考虑将组件的整个状态存储在其中,而不是将其分解。我将
useReducer
视为一系列
useState
语句的替代方案

在Redux的情况下,如果一个减速器中的一个过滤器需要过滤另一个减速器中的数据,请在组件中进行过滤,例如


const filterdData=rawDataState.filter(x=>x.someProperty===filterState)

我会在
搜索中去掉
useReducer
并将逻辑移到
useffect
中。这个问题看起来与这个问题相当相关@tmhao2005确实非常相似,感谢您的展示。但我很难掌握答案,因为我可以将其应用到我的代码中。你能把答案编辑得更一般一些吗?@Kalhan.Toress我是这样做到的:
useffect(()=>{const filteredTodos=todos.filter((todo)=>todo.text.includes(search));}[todos,search])其中
搜索
是一个useState状态。好的。。。我得到了它。但它有多混乱?