【发布时间】:2022-03-27 06:46:35
【问题描述】:
升级到 React 16.0.0 后,我现在可以使用有效的 React 组件来返回简单的字符串,而无需任何包装器元素。
但我也想做这样的事情:
<span title={<FormatterComponent value={someValue} />}>
Some text text
</span>
我想在title 属性中获得一个格式化字符串,但我在那里得到[object Object]。你能帮我完成这项工作吗?
谢谢!
【问题讨论】:
-
您希望
title包含呈现的 HTML 还是什么?这无论如何都行不通(参见jsfiddle.net/gmuvz9xf),title属性的内容无法格式化。另请参阅Is it possible to format an HTML tooltip (title attribute)? -
@FelixKling 在 React 16 中,您可以返回没有包装元素的字符串。见reactjs.org/blog/2017/09/26/…
-
我知道。但是 a) 实例化一个反应组件仍然不同于调用一个函数并返回一个字符串。评估
<FormatterComponent value={someValue} />不会产生字符串。它产生一个 React 元素(它是一个对象)。 b)你不能“风格”标题属性。这与 React 无关,这就是 HTML 的工作原理。现在,也许您对“格式”的意思有所不同。在这种情况下:您的组件是否返回字符串并不重要。您不能将 React 组件用作 HTML 属性的值。 -
问题是我希望将格式化功能捆绑在一个地方,并且有多个选项来呈现内容。我希望能够返回带有一些包装器和样式的格式化结果,也可以作为纯文本返回,并将其用作
title或其他属性。但如果这不可能,那么我需要以某种方式对其进行分解,并为纯字符串提供单独的格式化服务。 -
如果你想要在同一个类中的所有逻辑,你可以在
FormatterComponent上有一个返回字符串的静态方法。例如。FormatterComponent.format(someValue).
标签: javascript reactjs