Clearing state es6 React

前端 未结 13 801
独厮守ぢ
独厮守ぢ 2020-12-07 13:04

I am trying to clear a components state but can\'t find a reference for the es6 syntax. I was using:

this.replaceState(this.getInitialState());

相关标签:
13条回答
  • 2020-12-07 14:06

    To the best of my knowledge, React components don't keep a copy of the initial state, so you'll just have to do it yourself.

    const initialState = {
        /* etc */
    };
    
    class MyComponent extends Component {
        constructor(props) {
            super(props)
            this.state = initialState;
        }
        reset() {
            this.setState(initialState);
        }
        /* etc */
    }
    

    Beware that the line this.state = initialState; requires you never to mutate your state, otherwise you'll pollute initialState and make a reset impossible. If you can't avoid mutations, then you'll need to create a copy of initialState in the constructor. (Or make initialState a function, as per getInitialState().)

    Finally, I'd recommend you use setState() and not replaceState().

    0 讨论(0)
提交回复
热议问题