在 JSX 和 React Native 中使用符号

Posted

技术标签:

【中文标题】在 JSX 和 React Native 中使用符号【英文标题】:Using symbols in JSX and React Native 【发布时间】:2018-05-10 20:29:46 【问题描述】:

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

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

    var arrow = "U+0279C";

在 JSX 中:

   <Text>
      arrow
   </Text>

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

那么知道如何在 JSX 中使用符号吗?

【问题讨论】:

返回ɹC,其中ɹU+0279 的字符。 graphemica.com/%C9%B9 对,试试:"\u279C" 行得通!为什么这种编码有效而另一种无效? 不确定,但speakingjs.com/es5/ch24.html 【参考方案1】:

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

<Text>
    &#10140;
</Text>

如下文注释中所述..(重要的是,引号似乎不起作用)...

澄清一下:&lt;Text&gt;&amp;#10140;&lt;/Text&gt; 会起作用,但&lt;Text&gt; '&amp;#10140;' &lt;/Text&gt; 不会。

【讨论】:

澄清一下:&lt;Text&gt;&amp;#10140;&lt;/Text&gt; 可以,但&lt;Text&gt; '&amp;#10140;' &lt;/Text&gt; 不行。【参考方案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>

【讨论】:

【参考方案3】:

提供的答案对我不起作用,因为我是从 API 动态检索 unicode 十六进制代码。我必须将它们作为 javascript 传递到 react-native 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>)

【讨论】:

【参考方案4】:

&lt;Text&gt;"Any character"&lt;/Text&gt;

这对我有用。

【讨论】:

这不如提供一个真实的例子来回答 OP 的问题或使用类似箭头的符号而不是 "Any character"

以上是关于在 JSX 和 React Native 中使用符号的主要内容,如果未能解决你的问题,请参考以下文章

在React Native JSX中如何在一个房间里连接两个用户?

React Native TextInput 在 JSX 组件中失去焦点

如何在 react native 中解决这个 JSX 错误?

谁捆绑了 react-native 代码?

【react-native】小结

6手把手教React Native实战之JSX入门