Initiliaze&在React中使用sessionStorage?

时间:2016-11-03 11:03:39

标签: javascript reactjs

我目前正在尝试在渲染发生之前保存我的sessionStorage。

我的代码是这样的:

componentWillMount() {
        sessionStorage.setItem("isUserLogged", false);
    }

导致错误sessionStorage未定义。如何在渲染发生之前在React中初始化sessionStorage

3 个答案:

答案 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,
      );
    }
  }