Redux 是一个用于 JavaScript 应用的状态管理库,它通常与 React 一起使用,但也可以与其他框架或库结合使用。Redux 的核心概念包括 store、actions、reducers 和 selectors。
如果 Redux 中的 reducer 没有被调用,可能是以下几个原因:
dispatch
方法分发了 action。createStore
。type
字段与 reducer 中处理的类型相匹配。假设我们有一个简单的计数器应用,我们想要增加计数器的值。
Action:
const INCREMENT = 'INCREMENT';
export const increment = () => ({
type: INCREMENT,
});
Reducer:
const initialState = { count: 0 };
function counterReducer(state = initialState, action) {
switch (action.type) {
case INCREMENT:
return { ...state, count: state.count + 1 };
default:
return state;
}
}
Store:
import { createStore } from 'redux';
import { counterReducer } from './reducers';
const store = createStore(counterReducer);
组件中使用:
import React from 'react';
import { useSelector, useDispatch } from 'react-redux';
import { increment } from './actions';
function Counter() {
const count = useSelector(state => state.count);
const dispatch = useDispatch();
return (
<div>
<p>Count: {count}</p>
<button onClick={() => dispatch(increment())}>Increment</button>
</div>
);
}
通过以上步骤,你可以确保 action 被正确分发,reducer 被正确调用,并且状态得到更新。
Redux 适用于大型应用,特别是当应用的状态管理变得复杂时。它可以帮助开发者跟踪状态的变化,使得状态管理更加可预测和可调试。
通过这些信息,你应该能够理解 Redux 中 reducer 未被调用的原因,并知道如何解决这个问题。
领取专属 10元无门槛券
手把手带您无忧上云