更改主题,例如 Fabric Web(默认/深色)

2024-01-04

在fabric的文档页面中,现在每个示例组件都有更改主题功能 IE:example https://developer.microsoft.com/en-us/fabric#/controls/web/button 在此输入图像描述 https://i.stack.imgur.com/GP9e2.png

我怎样才能实现这个功能。我有 2 个主题(创建于 https://aka.ms/themedesigner)并且我想在主题之间切换


这是我的首选方式,使用 React Context。

import React from 'react';
import { Fabric, Customizer } from '@fluentui/react';
import { useLocalStorage } from 'react-use';



// Setup Theme Context and create hooks

import {
  DefaultCustomizations,
  DarkCustomizations
} from '@uifabric/theme-samples';

export const ThemeList = {
  light: DefaultCustomizations,
  dark: DarkCustomizations
};

export const ThemeContext = React.createContext({
  theme: 'light',
  changeTheme: name => {}
});

const ThemeWrapper = ({ children }) => {
  return (
    <ThemeContext.Consumer>
      {({ theme }) => (
        <Customizer {...ThemeList[theme]}>
          <Fabric>{children}</Fabric>
        </Customizer>
      )}
    </ThemeContext.Consumer>
  );
};

export const ThemeProvider = ({ children }) => {
  const [theme, setTheme] = useLocalStorage('theme', 'dark');
  const changeTheme = name => ThemeList[name] && setTheme(name);
  const value = { theme, changeTheme };
  return (
    <ThemeContext.Provider value={value}>
      <ThemeWrapper>{children}</ThemeWrapper>
    </ThemeContext.Provider>
  );
};

export const useTheme = () => React.useContext(ThemeContext);



// Now demo how to use it


export function App() {
  const { theme, changeTheme } = useTheme();

  return (
    <button onClick={() => changeTheme('dark')}>
      Switch to dark
    </button>
  );
}

import ReactDOM from 'react-dom';

ReactDOM.render(
  <ThemeProvider>
    <App />
  </ThemeProvider>,
  document.getElementById('root')
);

主持人注意:抱歉,这个答案最初是重复的。我删除了重复的。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

更改主题,例如 Fabric Web(默认/深色) 的相关文章

  • EPPlus 数据透视表/图表

    我已经使用 EPPlus for net 一段时间了 但仅用于简单的数据操作 有没有关于如何使用它来创建数据透视表 图表的示例 它似乎支持它 因为我可以在智能感知中看到数据透视表 但只是不确定语法 我只能在提供的示例中找到饼图 条形图之类的
  • 承担 Cognito 组的 IAM 角色

    是否可以承担 IAM 角色iam role1链接到 Cognito 组cognito group1认知用户的cognito user1在 Cognito 用户池中cognito user pool1 我的配置 Cognito 用户池cogn
  • 存储 Linux 守护进程所需的密码

    我已经编写了一个 Linux 守护进程 它将 并且必须 以 root 身份运行 当它运行时 不一定有人登录 因为它是由 cron 启动的 该守护进程在连接时需要存储一些 url uid 和密码 到其他服务器 例如 dropbox googl
  • 使用 Terraform 部署到多个 AWS 账户?

    我一直在寻找一种能够在 Terraform 中同时部署到多个 AWS 帐户的方法 但最终还是失败了 AWS 有使用 Stacks 执行此操作的概念 但我不确定是否有办法在 Terraform 中执行此操作 如果是这样 有哪些解决方案 您可以
  • 如何在 Heroku 上使用 Proximo 修复 java.net.BindException?

    我已经在 Heroku 上安装了 Proximo 附加组件 当将该命令添加到现有命令之前时 我从 Java 中收到 BindException 这是我的前置命令的样子 web bin proximo sh target bin webapp
  • 客户端代码的 Laravel Mix / Webpack 环境依赖变量

    我正在寻找一种在我的开发机器上使用 Laravel Mix 构建我的资产的方法 然后该方法将与生产中的参数相匹配 例如 我的 API 有一个基本 url 它是http foo test api v1为当地发展和https foo com a
  • 使用 Qt 以编程方式确定多桌面环境中的屏幕几何形状

    我正在使用 Qt 4 8 编写一个屏幕截图应用程序 有点像 puush 并且我在多个屏幕设置方面遇到了麻烦 尤其是当主显示器 坐标 0 0 不是最左边的 警告 这不是这个问题的重复 使用Qt4捕获多个屏幕桌面图像 https stackov
  • 尝试包含加密模块时出错:无法解析“加密”

    我正在 React JS 中进行注册用户设置 安装了加密库以保护密码 但是当我运行该程序时 它给了我一个错误 node modules jwa index js 中的错误 5 13 30 找不到模块 错误 无法解析 E Node 中的 加密
  • 如何使用 Google App Engine Blobstore 压缩图像

    我们有一个应用程序 用于处理来自 blobstore 的一系列图像 一个 例子在这里 http lh4 ggpht com f76xUkRZLRkb Qz5uu82TX3LoBRh4eYb9hxYwMRMLCk5ghO OL0DW2v4rR
  • vCPU 是否可以使用两台不同硬件计算机的不同 CPU

    我搜索过这个问题 但似乎没有得到公平的答案 假设我不想创建一个具有 vCPU 的虚拟机 并且该 vCPU 必须有 10 个核心 但我只有 2 台计算机 每台计算机有 5 个物理 CPU 核心 是否可以通过依赖这两个物理 CPU 来创建一个
  • USB 3.0 密钥上的大型 SVN 存储库 - 如何加速和简化?

    关于如何将版本控制存储库检出到 USB 密钥的最佳实践 存在一些现有问题 但这些问题都是在 USB 3 0 出现之前出现的 由于技术 USB 规范和成本相关的原因 USB 2 0 拇指驱动器对于小文件的性能令人惊讶地低迷 由于我们使用集中式

随机推荐

  • PostgreSQL:查找到目前为止的连续天数

    给定一堆带有时间戳字段的记录 代表我的应用程序中的签到 确定当前连续签到的好方法是什么 换句话说 按照签到时间降序排序 直到用户错过一天为止 总共有多少条记录 目前我正在使用这种技术 SELECT distinct uca created
  • 能被 n 整除的数的算法

    首先用户给出一个数字 n 来编程 例如5 程序必须找到可以整除的最小数n 5 并且该数字只能由数字 0 和 9 组成 不能包含任何其他数字 例如 如果用户给出5来编程 能被5整除的数有 5 10 15 20 25 30 85 90 95 但
  • 如何在 VB.NET 中使用 MSHTML?

    在问题 的回答中56107 https stackoverflow com questions 56107 what is the best way to parse html in c Erlend 提供了这个示例 C 代码 using
  • 在 Spark 2.2 之前,表统计数据还有用吗?

    Spark 2 2引入了基于成本的优化 CBO https databricks com blog 2017 08 31 cost based optimizer in apache spark 2 2 html https databri
  • 如何帮助 gcc 向量化 C 代码

    我有以下 C 代码 第一部分只是将复数矩阵从标准读入矩阵中 称为M 有趣的部分是第二部分 include
  • 如何在eclipse中比较两种方法

    我想比较两个我认为相同的方法 但是 Eclipse 重构不会从它们的内容中提取方法 我可以使用 eclipse Compare 比较它们两个吗 这些方法属于同一类 我使用的是 Eclipse Kepler 因此根据您的版本 您的情况可能会有
  • XML XSD 命名空间问题

    我正在尝试使用银行帐户示例定义一个简单的 XML 和 XSD 文件 这是定义 XML 文件的 XSD
  • runOnUIThread 问题

    我正在使用列表视图创建一个下载管理器 它将通过进度条显示当前下载的内容 我可以知道如何更新进度条吗 例如 我有3节课 main class 是一个列表视图 mAdapter class 扩展了 ArrayAdapter mThread cl
  • 移动目标元素时不会触发单击处理程序

    考虑以下演示https stackblitz com edit angular pur1dt https stackblitz com edit angular pur1dt 我有反应式表单控件 带有同步验证器 当字段无效时 错误消息显示在
  • “pagerror.gif”的意义?

    我的网站上有一个名为 pagerror gif 的不存在文件受到奇怪的点击 从一些基本的谷歌搜索来看 它似乎是 Internet Explorer 在某些情况下查找的文件 任何人都可以验证这一点 也许还可以提供一些有关 IE 何时查找该文件
  • 分页编译问题:不确定如何将游标转换为该方法的返回类型

    我一直在尝试在 Android 架构组件中使用 google 提供的 Room 来实现分页库 但是它在我的中显示编译时错误UserDao Class 这是错误 Error 22 42 error Not sure how to conver
  • 多态成员变量指针的 std::map

    我正在努力实现与字符串键关联的成员变量指针的映射 所有变量的范围都来自基类 BaseA 当从映射中访问变量时 只需要使用基类方法 示例中的 getDesc 因此不需要检索原始类型 该代码在GNU g 6 2 1下编译并运行 但根据我读到的内
  • 从 PHP 调用 node.js 脚本不会返回任何内容

    我想做的事情在理论上很简单 但我无法完全让它发挥作用 我编写了一个简单的 node js 脚本 它使用request包异步获取一些数据 解析它 并将其吐出为 html 我想将此脚本集成到我客户位于共享主机上的基于 php 和 apache
  • 为什么在这种情况下会生成classname$1.class? [复制]

    这个问题在这里已经有答案了 我编写了以下代码来实现单例模式 public final class Test static final class TestHolder private static final Test INSTANCE n
  • SQL 检查列中的所有值

    我在 Oracle DB 中有下表 ID VALUE 1 1 1 2 1 3 2 1 2 2 3 1 3 2 3 3 4 1 如何选择具有全部 3 个值 1 2 3 的 ID 最简单的选择通常是这样的 SQL gt ed Wrote fil
  • 如何将数组写入nodejs中的文件并保留方括号?

    我想将矩阵写入 js 文件 当我使用 console log matrix 时 一切都很好 但是当我将其写入文件时 结果会有所不同 var fs require fs var matrix new Array 10 for var i 0
  • 在 Angularjs 中对基于 Promise 的代码进行单元测试

    我在尝试在 Angularjs 中测试基于 Promise 的代码时遇到了困难 我的控制器中有以下代码 scope markAsDone function taskId tasksService removeAndGetNext taskI
  • 重命名列正则表达式,如果不匹配则保留名称

    data First Column 1 2 3 Second Column 1 2 3 First Mid LAST Ending 1 2 3 First1 Mid1 LAST1 Ending 1 2 3 df pd DataFrame d
  • Doctrine 部分查询返回完整对象

    我正在尝试优化查询 因为我需要一个简单的列表作为附属于多个实体的实体 所以我创建了这个查询 你应该给我返回 id 和名称 public function findAllOrderByName qb this gt createQueryBu
  • 更改主题,例如 Fabric Web(默认/深色)

    在fabric的文档页面中 现在每个示例组件都有更改主题功能 IE example https developer microsoft com en us fabric controls web button 在此输入图像描述 https