你好,我在与redux反应时遇到了这个问题,所以我的组件称为AddModel我正在使用该组件进行编辑和添加,而我的问题是在mapStateToProps中呈现了我以前的状态 就像当我用它来编辑名称时:Modele1而不是我重复使用它来添加它,这给了我TextField中的上一个Modele1,它应该给我一个空字符串 这是我的组件代码
class AddModele extends Component {
componentDidMount() {
const { match: { params } } = this.props;
if (params.id) {
const { dispatch } = this.props;
dispatch(ModeleAction.getModeleById(params.id));
}
}
render() {
const { classes } = this.props;
const { match: { params } } = this.props;
function InsertText(props) {
return <Typography>{'Add New modele'}</Typography>;
}
function EditText(props) {
return <Typography>{'Edit modele'}</Typography>;
}
function SegHeader() {
if (params.id) {
return <EditText />;
}
return <InsertText />
}
///////////////////////// this is where I use the props
const nomModele = this.props.nomModele;
return (
<div className={classes.root}>
<form className={classes.container}>
<TextField
id="nomModele"
label="Name"
className={classes.textField}
value={nomModele}
margin="normal"
onChange={this.handleChange('nomModele')}
>
</TextField>
</form>
</div>
);
}
}
AddModele.propTypes = {
classes: PropTypes.object.isRequired,
};
const mapStateToProps = (state) => {
return {
idModele: state.Modele.idModele,
nomModele: state.Modele.nomModele
}
}
const connectedAddModelePage = withRouter(connect(mapStateToProps,
null, null, {
pure: false
})(withStyles(styles)(AddModele)));
export { connectedAddModelePage as AddModele };
我的减速器代码:
const initialState = {
Modele: [],
idModele:'',
nomModele:''
};
export function Modele(state = initialState, action) {
switch (action.type) {
case 'FETECHED_ALL_Modele':
return {
...state,
Modele: action.Modele
};
case 'Modele_DETAIL':
return {
...state,
idModele: action.idModele,
nomModele: action.nomModele,
};
default:
return state
}
}
这是我想添加一些东西后发现的问题,我发现nomModele包含以前的值 预先感谢。