可以说我有一些代码可以为上一页中选择的选择框设置状态:

this.setState({selectedOption: 5});

在刷新页面后,有什么方法可以用5填充this.state.selectedOption吗?

是否可以使用回调将其保存在localStorage中,然后执行一个大的setState,或者是否有执行此类操作的标准方法?

最佳答案

因此,我的解决方案是在设置状态时还设置localStorage,然后在localStorage回调内部再次从getInitialState获取值,如下所示:

getInitialState: function() {
    var selectedOption = localStorage.getItem( 'SelectedOption' ) || 1;

    return {
        selectedOption: selectedOption
    };
},

setSelectedOption: function( option ) {
    localStorage.setItem( 'SelectedOption', option );
    this.setState( { selectedOption: option } );
}

我不确定是否可以将其视为Anti-Pattern,但除非有更好的解决方案,否则它不会起作用。

09-11 17:41