Redux 是一个用于 JavaScript 应用的状态管理库,它帮助开发者以可预测的方式管理应用的状态。Redux 的核心概念包括 actions、reducers 和 store。
Actions 是描述发生了什么的简单对象。它们必须有一个 type
字段来指示正在执行的 action 的类型。
Reducers 是纯函数,它们接收当前的状态和一个 action,然后返回新的状态。Reducer 应该根据 action 的类型来决定如何更新状态。
Store 是 Redux 中的核心容器,它保存了应用的所有状态,并提供了方法来分发 actions 和监听状态变化。
当你说“动作被分派,但不能与 reducer 一起工作”,这通常意味着 action 被成功创建并分派了,但是 reducer 没有正确地处理这个 action,或者状态没有被更新。
type
字段,并且对于每种 action 类型都有相应的处理逻辑。type
字段的对象。createStore
函数。假设我们有一个简单的计数器应用,我们想要增加计数器的值。
Action Creator:
function increment() {
return {
type: 'INCREMENT'
};
}
Reducer:
function counterReducer(state = 0, action) {
switch (action.type) {
case 'INCREMENT':
return state + 1;
default:
return state;
}
}
Store:
import { createStore } from 'redux';
const store = createStore(counterReducer);
使用 Store:
store.subscribe(() => console.log(store.getState()));
store.dispatch(increment()); // 应该在控制台输出 1
store.dispatch(increment()); // 应该在控制台输出 2
如果你遇到了问题,可以按照以下步骤进行调试:
console.log
来查看 action 是否被正确分派,以及状态是否按预期更新。通过这些步骤,你应该能够找到并解决 Redux 中 action 分派但 reducer 不工作的问题。
领取专属 10元无门槛券
手把手带您无忧上云