在JSX和React Native中使用符号

时间:2017-11-27 14:47:55

标签: react-native jsx

我想在我的React Native项目中使用this symbol

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

    var arrow = "U+0279C";

在JSX中:

   <Text>
      {arrow}
   </Text>

但是,这只是按字面意思显示编码:U+0279C

所以任何想法如何在JSX中使用符号?

3 个答案:

答案 0 :(得分:2)

将此功能用于以下格式的符号:&#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>

答案 1 :(得分:0)

提供的答案对我不起作用,因为我正在从API动态检索Unicode十六进制代码。我必须将它们作为JavaScript传递到本地的jsx代码中。

以下答案对我有用: Concatenate unicode and variable

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

示例:

const unicode = unicodeHexValueFromApi //This value equals "05D2"

return(<Text>{String.fromCodePoint(parseInt(unicode, 16))}</Text>)

答案 2 :(得分:-1)

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

这对我有用。