【问题标题】:set dark mode using react hooks typescript使用反应钩子打字稿设置暗模式
【发布时间】:2021-07-09 12:15:19
【问题描述】:

这里是 React 初学者,英语不是我的母语,对不起,我一直在寻找在我的网站上设置暗模式,我看到的示例大多是在暗和亮之间切换,你需要在其中指定每种颜色二。我的观点是如何在黑暗和明亮之间切换(这个灯应该是我在 css 中设置的默认颜色)

在我的组件中,每个组件都有自己的 css(自己的颜色)。如果我想要在深色和默认 css 之间切换的深色模式,例如更改背景颜色,会怎样?

我的代码:

import React, {useState, useEffect } from "react";

...

<div className="app">
      <Switch>
         <Route path="/a">
          <A />
        </Route>
        <Route path="/c">
          <C />
        </Route>
        <Route path="/b">
          <B />
        </Route>
        <Route path="/">
          <Redirect to="/a" />
        </Route>
      </Switch>
    </div>

如果需要更多信息,我可以提供。

【问题讨论】:

标签: javascript css reactjs typescript


【解决方案1】:

您可以使用上下文提供程序来全局使用和更新 darkMode 状态和本地存储,以使其在每个会话中保持不变。确保在将项目设置到本地存储之前解析您的数据。

Here is a live demo

【讨论】:

  • 当用户点击切换它应该将我的整个应用程序设置为暗模式(有很多页面和东西),在其他示例中他们使用本地存储和上下文 api,我们不需要这些?跨度>
  • 刚刚更新了我的答案!以为您想要更简单的东西,但没问题,请寻找现场演示。
  • 你可以使用其他一些全局状态库,比如 Recoil(我更喜欢它而不是 context api)
  • 当用户切换暗模式时,您是否可以添加多个页面(我想知道如何将这种暗模式从一个页面传递到另一个页面,如果用户切换它应该将所有页面更改为暗模式及其内容)
  • 您可以使用上下文中的任何变量或函数,只需将它们导入组件,如下所示: const {theme, changeTheme} = useContext(ThemeContext)
猜你喜欢
  • 2021-11-25
  • 2020-08-09
  • 1970-01-01
  • 1970-01-01
  • 2021-06-30
  • 2019-04-19
  • 2023-03-08
  • 1970-01-01
  • 2021-01-03
相关资源
最近更新 更多