可以说我有一些代码可以为上一页中选择的选择框设置状态:
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,但除非有更好的解决方案,否则它不会起作用。