在 React 中查找文本元素的颜色

Posted

技术标签:

【中文标题】在 React 中查找文本元素的颜色【英文标题】:Find Color of Text Element in React 【发布时间】:2021-10-04 21:28:32 【问题描述】:

我有一个链接组件,我想知道文本的颜色是什么。我将如何在 React 中做到这一点?

我知道使用 Vanilla JS,您可以使用 element.style.color 找到它,但是如果我使用 textEl.style.color 执行以下代码类似的操作,我会得到 undefined

export function TextLink( children, path, inline = false, dash = false : TextLinkProps) 
  const textEl = useRef("");
  return (
    <StyledLink href=path inline=inline dash=dash ref=textEl>
      children
    </StyledLink>
  );

【问题讨论】:

【参考方案1】:

您可以使用window.getComputedStyle() 并通过其ref 传递元素本身,如下所示:


const ref = React.useRef();
...
...
...

React.useEffect(() => 
  const style = window.getComputedStyle(ref.current)
  console.log(style.color); // rgb(255, 0, 0) 
, []);

Window.getComputedStyle()

【讨论】:

【参考方案2】:

给我rgb(0, 0, 0)

const textEl = React.useRef(null);

  React.useEffect(() => 
    if (textEl.current) 
      console.log(window.getComputedStyle(textEl.current).color)
    
  , [textEl])

或者如果你不需要计算一个,就直接使用textEl.current.style.color

【讨论】:

【参考方案3】:

您在参考时忘记了“当前”。像这样写:

textEl.current.style.color

【讨论】:

以上是关于在 React 中查找文本元素的颜色的主要内容,如果未能解决你的问题,请参考以下文章

更改场景标题元素的文本颜色

在swift4中查找按钮的文本颜色

在 iOS 中 React Native 更改状态栏文本颜色

React Native 更改按钮文本颜色

如何使用css改变某个元素的文本颜色

如果指定了文本颜色,则禁用按钮在 React JS 中不起作用