使用 React 动态加载样式表

2023-11-26

我正在构建一个 CMS 系统来管理营销登陆页面。在“编辑登陆页面”视图上,我希望能够加载用户正在编辑的任何登陆页面的关联样式表。我怎样才能用 React 做这样的事情呢?

我的应用程序是完全 React、同构的、运行在Koa。我的相关页面的基本组件层次结构如下所示:

App.jsx (has `<head>` tag)
└── Layout.jsx (dictates page structure, sidebars, etc.)
    └── EditLandingPage.jsx (shows the landing page in edit mode)

登陆页面的数据(包括要加载的样式表的路径)是异步获取的EditLandingPage in ComponentDidMount.

如果您需要任何其他信息,请告诉我。很想弄清楚这一点!

奖励:我还想在离开页面时卸载样式表,我认为我可以执行与我收到的任何答案相反的操作ComponentWillUnmount, right?


只需使用 React 的状态更新您想要动态加载的样式表路径即可。

import * as React from 'react';

export default class MainPage extends React.Component{
    constructor(props){
        super(props);
        this.state = {stylePath: 'style1.css'};
    }

    handleButtonClick(){
        this.setState({stylePath: 'style2.css'});
    }

    render(){
        return (
            <div>
                <link rel="stylesheet" type="text/css" href={this.state.stylePath} />
                <button type="button" onClick={this.handleButtonClick.bind(this)}>Click to update stylesheet</button>
            </div>
        )
    }
};

另外,我已将其实现为反应组件。您可以通过 npm install react-dynamic-style-loader 进行安装。
检查我的 github 存储库以检查:
https://github.com/burakhanalkan/react-dynamic-style-loader

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

使用 React 动态加载样式表 的相关文章

随机推荐

  • 如何将可运行 jar 的所有依赖项放在单独的文件夹中?

    我在用着mvn package创建一个可运行的 jar 其中包含所有依赖项 运行良好 但我更喜欢将所有外部依赖项打包在单独的文件夹中 因此我必须改变什么
  • 无法为崩溃的程序创建核心文件

    我正在使用 Ubuntu 12 04 LTS 我写了一个简单的程序如下来创建崩溃 null c include
  • 如何创建一个在单击时增加计数器的按钮?

    我正在尝试制作一个按钮 单击时计数器的值会增加 1 然而 我的代码似乎不起作用 var count 1 var button document querySelector increment button addEventListener
  • 如何使用 Spring 和 Tomcat 设置加载时编织,而不在命令行上使用 -javaagent

    我使用的是Spring 3 2 9 Tomcat 6 0 44 当部署在 Tomcat 上时 我正在尝试配置应用程序的 Spring 检测提供程序 例如 spring instrumentation jar 以进行加载时编织 我有一个不使用
  • 将 Twitter 数据索引到 ElasticSearch 中:已超出索引中总字段 [1000] 的限制

    我有一个系统可以将 Twitter Stream 索引到 Elasticsearch 中 它已经运行了几个星期了 最近出现了一个错误 内容如下 Limit of total fields 1000 in index dev tweets h
  • 改变Javascript中类的CSS?

    我有一堂课的显示设置为none我现在想在 Javascript 中将其设置为inline我知道我可以用id with getElementById但是在课堂上最干净的方法是什么 You can这样做 实际上改变与类相关的样式规则 使用sty
  • 如何对 NSURLConnection Delegate 进行单元测试?

    如何对我的 NSURLConnection 委托进行单元测试 我创建了一个符合不同协议的 ConnectionDelegate 类 以将来自网络的数据提供给不同的 ViewController 在我深入之前 我想开始编写我的单元测试 但我不
  • 无法使用 --module-source-path 解析模块

    跟进如何定义对未知模块的合格导出 我已经发布了一个testcase有两个模块 core and plugin core尝试将包暴露给plugin使用合格的导出 但编译器抱怨plugin不存在 根据艾伦 贝特曼的建议 我尝试添加 module
  • 如何在 WatchOS 上构建带有音频反馈的锻炼应用程序?

    我正在 WatchOS 上构建一个非常简单的锻炼应用程序 它的功能之一是在训练期间提供音频反馈 当显示屏打开时 我可以播放文件 但当显示屏变暗时 手表不会播放我的文件 有人可以查看我的 swift 代码并帮助我找出我缺少的内容吗 这是我的扩
  • 防止第二个传奇

    我有一个 ggplot 它还显示一个图例 ggplot dt m aes x pct on OAC cont y Number of Practices fill Age Group geom bar stat identity posit
  • 如何修复自定义 github 页面域上的 ERR_TOO_MANY_REDIRECTS?

    所以我一天前在 namecheap 上设置了自定义域的 github 页面没有问题 然后我尝试通过github新增加的页面对https的支持切换到Https 经过太多的挫折后 我切换到 CloudFlare for Https 但现在遇到错
  • JavaScript 中的 Zip 数组?

    我有 2 个数组 var a 1 2 3 var b a b c 我想要得到的结果是 1 a 2 b 3 c 这看起来很简单 但我就是想不出来 我希望结果是一个数组 其中两个数组中的每个元素都压缩在一起 Use the map方法 var
  • 将电话号码与 Firebase 网页版中的 Facebook 和 Gmail 帐户关联

    我正在使用 Firebase 服务在 React 中创建一个 Web 应用程序 我在登录屏幕上登录了 Google 和 Facebook 登录后用户可以选择链接他们的手机 我使用 Firebase电话验证为了这 用户已经签名 然后他们使用手
  • DB单元应该忽略行的顺序

    有没有办法告诉 DB Unit 忽略行比较的顺序 我的问题是 我不知道行将以何种顺序写入数据库 但 DB Unit 强迫我给出一个有序列表 我想要 dbunit 做的是 检查数据库中的行数和预期数据集是否匹配 已解决 开箱即用 检查每行是否
  • 当代码编译良好时,Resharper“无法解析符号”[重复]

    这个问题在这里已经有答案了 我相信 错误消息与Serilog具体来说 而是因为代码 程序集 包的特定结构 修饰符等 所以 问题是Resharper显示错误 并且代码 来自引用的程序集 无法导航到 Visual Studio导航 通过Go t
  • jQuery.fn.load() 已弃用?

    jQuery fn load 在 jquery 3 X X 中已弃用 我把文档搞得一团糟 我的代码是 myDiv load mypage html 如何将 mypage html 加载到 myDiv 中 你的代码是正确的 这加载方法您使用的
  • python-requests:获取响应内容的头部而不消耗全部内容

    使用 python requests 和 python magic 我想测试 Web 资源的 mime 类型 而不获取其所有内容 特别是如果该资源恰好是 ogg 文件或 PDF 文件 根据结果 我可能决定全部获取 然而 在测试 mime 类
  • 如何在同一选择器上使用“&”和标签

    我正在尝试编写一个嵌套选择器 它选择具有特定属性的特定标签 例如 li 要选择此选项 li foo bar 可以 但我想把它嵌套在下面 foo bar 使用scss 符号 因为我还有其他东西 foo bar 属性 例如 div class
  • 用于过滤 @OneToMany 关联结果的注释

    我有两个表之间的父 子关系 以及我的 Java 类中的相应映射 这些表格大致如下所示 A ref number stuff varchar2 4000 B a ref number other number foo varchar2 200
  • 使用 React 动态加载样式表

    我正在构建一个 CMS 系统来管理营销登陆页面 在 编辑登陆页面 视图上 我希望能够加载用户正在编辑的任何登陆页面的关联样式表 我怎样才能用 React 做这样的事情呢 我的应用程序是完全 React 同构的 运行在Koa 我的相关页面的基