在JSX中使用符号并进行反应本机



我想在我的反应本机项目中使用此符号。

我尝试使用这样的Unicode编码:

    var arrow = "U+0279C";

和JSX:

   <Text>
      {arrow}
   </Text>

然而,这只是从字面上显示编码: U+0279C

所以我知道如何在JSX中使用符号?

您应该使用符号的HTML代码。

<Text>
    &#10140;
</Text>

如下注释中所述。(重要的是,行情似乎不起作用)...

只是为了澄清:<Text>&#10140;</Text>将起作用,但是<Text>{ '&#10140;' }</Text>不会。

以这种格式使用此功能:&amp;#1 7 4;

/**
 * replaces /$#d+/ symbol with actual symbols in the given string
 * 
 * Returns given string with symbol code replaced with actual symbol
 * 
 * @param {string} name 
 */
export function convertSymbolsFromCode(name = '') {
  let final = null;
  if (name) {
    const val = name.match(/&#d+;/) ? name.match(/&#d+;/)[0] : false; // need to check whether it is an actual symbol code
    if (val) {
      const num = val.match(/d+;/) ? val.match(/d+;/)[0] : false; // if symbol, then get numeric code
      if (num) {
        final = num.replace(/;/g, '');
      }
    }
    if (final) {
      name = name.replace(/&#d+;/g, String.fromCharCode(final));
    }
  }
  return name;
}

用法

<Text>
   {convertSymbolsFromCode(this.state.unicode)}
 </Text>

提供的答案对我不起作用,因为我从API中动态检索Unicode HEX代码。我不得不将它们作为javaScript传递到反应的JSX代码中。

以下答案对我有用:串联Unicode和变量

我使用了 String.fromCodePoint(parseInt(unicode, 16)),并且起作用。

示例:

const unicode = unicodeHexValueFromApi //This value equals "05D2"
return(<Text>{String.fromCodePoint(parseInt(unicode, 16))}</Text>)

<Text>{"Any character"}</Text>

这对我有用。

相关内容

  • 没有找到相关文章

最新更新