Reducer不能在redux react js上工作



选中的状态不会在点击时更新。我认为这是减速器的误差。特别是当函数handleGreeceLan被调用时应该调用action和reducer但我认为只有action被调用

我打电话的文件

import { changeLanGR, changeLanEN }  from '../actions/toolbarActions';
const handleGreeceLan = () => {
changeLanGR();
};
const handleUKLan = () => {
changeLanEN();
};
<MenuItem onClick={handleUKLan}>
...
</MenuItem>
<MenuItem onClick={handleGreeceLan}>
...
</MenuItem>
...
const mapStateToProps = state => {
return { Selectedlan: state.Selectedlan };
};
export default connect(
mapStateToProps,
{ changeLanGR, changeLanEN }
)(Language);

齿轮

import { combineReducers } from 'redux';
import { LAN_GR, LAN_EN }  from '../actions/types';
const selectLanguage = (state = LAN_GR, action) => {
if (action.type === LAN_GR) {
return { ...state, Selectedlan: LAN_GR};
}
else if (action.type === LAN_EN) {
return { ...state, Selectedlan: LAN_EN};
}
return state;
};
export default combineReducers({
Selectedlan: selectLanguage
});

行动

import { LAN_GR, LAN_EN } from './types';
export const changeLanGR = () => {
return {
type: LAN_GR
};
};
export const changeLanEN = () => {
return {
type: LAN_EN
};
};

您正在将分派函数映射到props,这意味着您需要调用从props映射的那些函数:

const Language = ({ 
className, 
changeLanGR, 
changeLanEN,
...rest 
}) => {
const handleGreeceLan = () => {
changeLanGR();
};
const handleUKLan = () => {
changeLanEN();
};

最新更新