我想在我的React Native项目中使用this symbol。
我尝试使用这样的Unicode编码:
var arrow = "U+0279C";
在JSX中:
<Text>
{arrow}
</Text>
但是,这只是按字面意思显示编码:U+0279C
。
所以任何想法如何在JSX中使用符号?
答案 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>
这对我有用。