Привет, у меня есть эта проблема в реакции с приставкой, так что мой компонент называется AddModel. Я использую этот компонент как для редактирования, так и для добавления, и моя проблема в том, что в mapStateToProps отображается мое предыдущее состояние, как когда я использую его для редактирования имени:Modele1, чем в другой раз, когда я использую его для добавления, он дает мне предыдущий Modele1 в TextField, и он должен дать мне пустую строку, вот мой код для компонента
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 содержит предыдущее значение, спасибо заранее.