如何在显示之前在React-Native中格式化prop?

时间:2016-01-21 19:29:31

标签: react-native

如果我有一个等于“8888888888”的道具,但我想将“(888)888-8888”显示为Text,那么转换的最佳方式是什么?

1 个答案:

答案 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