温馨提示:本文翻译自stackoverflow.com,查看原文请点击:javascript - Clearing state es6 React
javascript reactjs

javascript - 清除状态es6 React

发布于 2020-04-03 23:59:03

我正在尝试清除组件,state但找不到es6语法的参考。我正在使用:

this.replaceState(this.getInitialState());

但是,这不适用于es6类语法。

我将如何获得相同的结果?

查看更多

提问者
Guy
被浏览
8
David L. Walsh 2016-01-18 09:25

据我所知,React组件不会保留初始状态的副本,因此您只需要自己做即可。

const initialState = {
    /* etc */
};

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

请注意,该行this.state = initialState;要求您永远不要改变状态,否则您将污染initialState并且无法进行重置。如果无法避免突变,则需要initialState在构造函数中创建的副本(或按照initialState进行功能getInitialState()。)

最后,建议您使用setState()而不是replaceState()