我目前正在尝试在渲染发生之前保存我的sessionStorage。
我的代码是这样的:
componentWillMount() {
sessionStorage.setItem("isUserLogged", false);
}
导致错误sessionStorage
未定义。如何在渲染发生之前在React中初始化sessionStorage
?
答案 0 :(得分:9)
使用服务器端呈现时,SessionStorage不可用(您可以模拟它,但用户无法使用数据)。
仅在浏览器https://developer.mozilla.org/en-US/docs/Web/API/Window/sessionStorage
中可用写入存储的示例
window.sessionStorage.setItem("key", "value");
从存储空间中检索项目
window.sessionStorage.getItem("key");
答案 1 :(得分:0)
只读的sessionStorage属性访问当前源的会话存储对象。 sessionStorage与localStorage类似;区别在于,尽管localStorage中的数据不会过期,但是pageSession结束时会清除sessionStorage中的数据。
答案 2 :(得分:0)
我用next,用react state解决了这个问题,解决方法如下:
var _isLoading = true;
@override
Widget build(BuildContext context) {
return CustomScrollView(
slivers: [
_buildWidget1(),
_buildWidget2(),
],
);
}
Widget _buildWidget1() {
return SliverToBoxAdapter(
child: Container(height: 400, color: Colors.blue),
);
}
Widget _buildWidget2() {
if(_isLoading) {
return SliverFillRemaining(
hasScrollBody: false,
child: Center(child: const CircularProgressIndicator()),
);
} else {
return SliverFixedExtentList(
delegate: SliverChildBuilderDelegate(
_buildItem,
childCount: childCount,
),
itemExtent: 56,
);
}
}