reactjs - 更改 Office UI Fabric React 组件的颜色/主题?

标签 reactjs office-ui-fabric

我正在尝试使用 Office UI Fabric React components在我的网络应用程序中。有没有办法改变组件的颜色或主题?例如,我尝试过这样的事情:

ReactDOM.render(
  <DefaultButton
    className='my-button'
    text='Test Button'
  />,
  document.getElementById('root')
);

my-button 是一个定义为红色背景颜色的 css 类。但实际上并没有改变什么。按钮背景颜色仍然是默认的#f4f4f4

是否可以更改组件的颜色?

[更新] 理想情况下,我想我想全局更改组件的主题,以便我的应用程序可以具有一致的外观和感觉。

谢谢!

最佳答案

阅读后this并深入研究 GitHub 上的 Office UI Fabric React 源代码,我想我已经找到了解决方案。我想也许我应该在最初的问题中更好地表达我的真实意图。 (对此感到抱歉,我已经更新了问题)。我真正想要的是根据某些特定主题全局更改按钮的颜色(以及其他组件的颜色),而不是单独更改。

所以我的解决方案是在渲染按钮之前添加以下几行:

import { loadTheme } from 'office-ui-fabric-react/lib/Styling';

loadTheme({
  palette: {
    'neutralPrimary': 'yellow',    // Used for button text
    'neutralLighter': 'red',       // Used for button background
  }
});

对于不同的组件,您需要找到用于不同 UI 部分的正确颜色名称。例如,在上面的代码片段中,我们可以看到“neutralPrimary”用于渲染按钮文本,“neutralLighter”用于渲染按钮背景。我必须阅读 source code弄清楚它们。不确定是否有更简单的方法。

但请记住,这些更改是全局性的,并且会影响依赖这些颜色代码的其他组件。

但仍然感谢@enjoylife的回复!

关于reactjs - 更改 Office UI Fabric React 组件的颜色/主题?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45516541/

相关文章:

javascript - 函数 setState 中的事件目标为 null

javascript - 为什么 Redux 存储中的这个变量不在 React 页面的 `this.props` 中?

javascript - Access 和 Office 加载项复选框选中状态

javascript - 使命令栏无响应

html - 使用外部 css 和引导框架类进行 react

node.js - 使用 axios 发布数据和文件

reactjs - React/Redux 从根组件调度操作?

javascript - Office Fabric UI MessageBanner 选择不一致

reactjs - Office UI Fabric React TagPicker 新项目

office-ui-fabric - 如何自定义详情列表中的列标题样式