javascript - 如何在React中动态改变文本的颜色?

标签 javascript html css reactjs

我想在一天中的特定时间更改标题的颜色。(例如晚上为蓝色,早晨为绿色......) 为此,我尝试使用 inline-css(在 js 文件内)。

我的CSS文件:

.heading {
  font-size: 50px;
  font-weight: bold;
  border-bottom: 5px solid black;
}

我的js文件:

import React from "react";
import ReactDOM from "react-dom";

const root = document.getElementById("root");

const curretnTime = new Date().getHours();

if (curretnTime < 12 && curretnTime >= 0) {
  ReactDOM.render(
    <div>
      <h1 className="heading">Good Morning</h1>
    </div>,
    root
  );
} else if (curretnTime >= 12 && curretnTime <= 18) {
  ReactDOM.render(
    <div>
      <h1>Good Afternoon</h1>
    </div>,
    root
  );
} else {
  ReactDOM.render(
    <div>
      <h1>Good Evening</h1>
    </div>,
    root
  );
}

我知道这是一个很容易问的问题,但任何答案都会有帮助。谢谢。

最佳答案

您应该使用内联样式,例如:

import React from "react";
import ReactDOM from "react-dom";

const root = document.getElementById("root");

const curretnTime = new Date().getHours();

let timeOfDay = 'evening';   // not used

let timeOfDayColor = 'blue';
let timeOfDayMessage = 'Good Evening';

if (curretnTime < 12 && curretnTime >= 0) {
   timeOfDay = 'morning';

   timeOfDayColor = 'green';
   timeOfDayMessage = 'Good Morning';

} else if (curretnTime >= 12 && curretnTime <= 18) {
   timeOfDay = 'afternoon';

   timeOfDayColor = 'purple';
   timeOfDayMessage = 'Good Afternoon';
}

ReactDOM.render(
    <div>
      <h1 className="heading" style={{backgroundColor: timeOfDayColor}} >{timeOfDayMessage}</h1>
    </div>,
    root
);

style={{backgroundColor: timeOfDayColor}} 是覆盖 CSS 样式的内联样式:https://www.w3schools.com/react/react_css.asp

但是,您应该真正使用组件,而不是在 ReactDOM.render 方法中包含所有代码。也许先尝试一下 react 教程:https://reactjs.org/tutorial/tutorial.html

关于javascript - 如何在React中动态改变文本的颜色?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64256897/

相关文章:

javascript - 如何动态更改图像?

css - 菜单下有链接无法点击菜单项

javascript - document.getElementById 不记录我在表单中输入的值 - 返回 null

html - 内联显示按钮和标签

javascript - JQuery FadeOut 在错误的时间发生

html - 在表中选择具有特定类的第一个 child 并将其隐藏

javascript - 功能组件的辅助功能放在哪里?什么对性能最好?

Javascript - 轮播到达右端或左端

javascript - 使用 CSS 平滑字体

css - IE 7 float 问题不忽略内容