如何在React中删除mapStateToProps(redux)中的先前状态?

时间:2019-03-29 20:43:42

标签: reactjs react-redux state

你好,我在与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包含以前的值 预先感谢。

0 个答案:

没有答案