我想在我的反应本机项目中使用此符号。
我尝试使用这样的Unicode编码:
var arrow = "U+0279C";
和JSX:
<Text>
{arrow}
</Text>
然而,这只是从字面上显示编码: U+0279C
。
所以我知道如何在JSX中使用符号?
您应该使用符号的HTML代码。
<Text>
➜
</Text>
如下注释中所述。(重要的是,行情似乎不起作用)...
只是为了澄清:
<Text>➜</Text>
将起作用,但是<Text>{ '➜' }</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>
这对我有用。