如何使用状态实现暗模式并将设置保存到本地存储?

Abhinav安舒尔

我正在尝试在ReactJS中构建暗模式。我试图在stackoverflow中查找其他答案,但是没有一个操作系统使用与我使用的相同的方法。

我正在尝试做的是:

=>构建暗/亮模式Web应用程序,因此当我单击按钮时,它会从暗模式切换到亮模式,再从暗模式切换到亮模式,依此类推。

我的方法是:

=>我创建了一个简单的一页虚拟标题,其中包含少量文本和标题。我添加了一个“开关”按钮,单击该按钮将在暗/亮模式之间切换。

=>我用boolean初始化了“状态”,并将onClick按钮添加到了“切换”按钮。每当我们单击按钮时,它都会调用一个名为handlechange()的函数,该函数会使用“ this.setState”进一步更新“状态”并更改布尔值。

=>基于我们的布尔值,我们的div的“ className”正在更改,它将为我在CSS中进一步定义的深色和浅色模式呈现特定的样式集。

工作原理:

=>该按钮运行良好,并且我可以在模式之间进行切换。

问题是什么:

=>我正在尝试在浏览器的本地存储中存储布尔值。

=>原因是,即使用户刷新页面,他们也将保持先前选择的相同模式。

=>我设法将布尔值存储在变量名称“ toggle”的本地存储中,并尝试进行console.log(toggle),它确实从false,true,false,true等更改,但是当我替换时我的班级名称

<div className={this.state.setClass ? "dark-mode" : "light-mode"}>

<div className={toggle ? "dark-mode" : "light-mode"}> 

它根本不起作用,这意味着按钮不会响应更改,而是保持亮灯模式,即使将toggle变量从true,false,true,false等更改(当我尝试登录时)也是如此。

解决该问题的方法应该是什么,这样我什至可以将值存储在localstorage中,并将localstorage用于className?

感谢您耐心阅读。请帮帮我:)

我的代码:

import React from "react";
import ReactDOM from "react-dom";
import "./DarkMode.scss";

class DarkMode extends React.Component {
  state = {
    setClass: false
  };

  handleChange = () => {
    this.setState({
      setClass: !this.state.setClass
    });
    
  };

  render() {
    localStorage.setItem("Mode", !this.state.setClass);
    let toggle = localStorage.getItem("Mode");
    console.log(toggle);
    return (
      <div className={this.state.setClass ? "dark-mode" : "light-mode"}>
        <nav>Toggle goes Here</nav>
        <main>
          <h1>Light Mode</h1>
          <h2>Toggle the switch to see some magic happen!</h2>
          <button onClick={this.handleChange}>Switch</button>
        </main>
      </div>
    );
  }
}

export default DarkMode;
瓦希德·阿赫塔尔

像这样解析 let toggle = JSON.parse(localStorage.getItem("Mode"));

class DarkMode extends React.Component {
 state = {
    setClass: JSON.parse(localStorage.getItem("Mode"))
  };

  handleChange = () => {

    if (JSON.parse(localStorage.getItem("Mode")) === true)
      this.setState({ setClass: false }, () => {
        localStorage.setItem("Mode", JSON.stringify(false));
      });
    else {
      this.setState({ setClass: true }, () => {
        localStorage.setItem("Mode", JSON.stringify(true));
      });
    }
  };

  render() {
    const { setClass } = this.state;
    return (
      <div className={setClass ? "dark-mode" : "light-mode"}>
        <nav>Toggle goes Here</nav>
        <main>
          <h1>Light Mode</h1>
          <h2>Toggle the switch to see some magic happen!</h2>
          <button onClick={this.handleChange}>Switch</button>
        </main>
      </div>
    );
  }
    }

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何使用AngularJS将复选框的状态保存到本地存储中?

来自分类Dev

如何保存到本地存储

来自分类Dev

如何将设置保存到应用程序设置?

来自分类Dev

将暗模式/亮模式保存到本地

来自分类Dev

UEFI是否将设置保存到CMOS

来自分类Dev

我如何弹出消息并将过期时间设置为存储在本地存储中的消息状态?

来自分类Dev

vuex的暗模式并保存在本地存储中

来自分类Dev

将状态保存到本地存储中以做出反应

来自分类Dev

如何使用AFNetworking 3.0下载文件并将其保存到本地?

来自分类Dev

如何从url下载图像并将其保存到使用javascript的本地目录中?

来自分类Dev

如何检查CSV文件中存储的多个URL的URL状态并将结果保存到新的CSV文件中

来自分类Dev

如何使用 Powershell 从 Azure 存储下载 blob 文件并将其保存到 FTP 服务器?

来自分类Dev

如何在本地计算机上使用SSH dd远程磁盘并将其保存到本地磁盘

来自分类Dev

如何使用特定编号将阵列保存到本地存储?

来自分类Dev

将设置保存到可执行VB.Net

来自分类Dev

以编程方式将设置保存到postgresql.conf

来自分类Dev

如何通过Vanilla JS保存到本地存储

来自分类Dev

如何将用户输入保存到本地存储?

来自分类Dev

如何将api数据保存到本地存储中?

来自分类Dev

如何设置xml属性并将更改保存到文件?

来自分类Dev

使用Phonegap将变量保存到本地存储

来自分类Dev

使用jQuery将动态创建的表保存到本地存储

来自分类Dev

暗模式复选框应保存在本地存储中

来自分类Dev

使用 sessionStorage 保存暗模式

来自分类Dev

如何在不保存到本地计算机的情况下dd图像并将其保存到tftp?

来自分类Dev

将阵列保存到Chrome本地存储

来自分类Dev

信息未保存到本地存储

来自分类Dev

将本地存储的parseobject保存到云

来自分类Dev

将数据保存到本地存储AngularJS

Related 相关文章

  1. 1

    如何使用AngularJS将复选框的状态保存到本地存储中?

  2. 2

    如何保存到本地存储

  3. 3

    如何将设置保存到应用程序设置?

  4. 4

    将暗模式/亮模式保存到本地

  5. 5

    UEFI是否将设置保存到CMOS

  6. 6

    我如何弹出消息并将过期时间设置为存储在本地存储中的消息状态?

  7. 7

    vuex的暗模式并保存在本地存储中

  8. 8

    将状态保存到本地存储中以做出反应

  9. 9

    如何使用AFNetworking 3.0下载文件并将其保存到本地?

  10. 10

    如何从url下载图像并将其保存到使用javascript的本地目录中?

  11. 11

    如何检查CSV文件中存储的多个URL的URL状态并将结果保存到新的CSV文件中

  12. 12

    如何使用 Powershell 从 Azure 存储下载 blob 文件并将其保存到 FTP 服务器?

  13. 13

    如何在本地计算机上使用SSH dd远程磁盘并将其保存到本地磁盘

  14. 14

    如何使用特定编号将阵列保存到本地存储?

  15. 15

    将设置保存到可执行VB.Net

  16. 16

    以编程方式将设置保存到postgresql.conf

  17. 17

    如何通过Vanilla JS保存到本地存储

  18. 18

    如何将用户输入保存到本地存储?

  19. 19

    如何将api数据保存到本地存储中?

  20. 20

    如何设置xml属性并将更改保存到文件?

  21. 21

    使用Phonegap将变量保存到本地存储

  22. 22

    使用jQuery将动态创建的表保存到本地存储

  23. 23

    暗模式复选框应保存在本地存储中

  24. 24

    使用 sessionStorage 保存暗模式

  25. 25

    如何在不保存到本地计算机的情况下dd图像并将其保存到tftp?

  26. 26

    将阵列保存到Chrome本地存储

  27. 27

    信息未保存到本地存储

  28. 28

    将本地存储的parseobject保存到云

  29. 29

    将数据保存到本地存储AngularJS

热门标签

归档