如果我有一个等于“8888888888”的道具,但我想将“(888)888-8888”显示为Text,那么转换的最佳方式是什么?
答案 0 :(得分:2)
您应该在组件外部声明函数,然后在需要时传递函数:
^
您还可以在渲染函数中设置变量:
function formatPhoneNumber(s) {
var s2 = (""+s).replace(/\D/g, '');
var m = s2.match(/^(\d{3})(\d{3})(\d{4})$/);
return (!m) ? null : "(" + m[1] + ") " + m[2] + "-" + m[3];
}
var SampleApp = React.createClass({
render: function() {
return (
<View style={styles.container}>
<Text>{ formatPhoneNumber('5556065593') }</Text>
</View>
);
}
});
如果您将号码作为道具,可以这样称呼:
var SampleApp = React.createClass({
render: function() {
var number = formatPhoneNumber('5556065593')
return (
<View style={styles.container}>
<Text>{ number }</Text>
</View>
);
}
});
设置示例here。