2016-06-14 20 views
4

有谁知道改变文本组件默认文本颜色的好方法吗?为Text组件添加默认颜色的更好方法?

这是我将它包装在MyText组件中的尝试。

import styles from 'somewhere'; // import default color 

function MyText(props) { 
    return (
    <Text 
     style={[styles.default, props.style]} 
     allowFontScaling={props.allowFontScaling} 
     numberOfLines={props.numberOfLines} 
     onLayout={props.onLayout} 
     onLongPress={props.onLongPress} 
     onPress={props.onPress} 
     suppressHighlighting={props.suppressHighlighting} 
     testID={props.testID} 
    > 
     {props.children} 
    </Text> 
); 
} 

MyText.propTypes = { 
    allowFontScaling: PropTypes.bool, 
    children: PropTypes.any, 
    numberOfLines: PropTypes.number, 
    onLayout: PropTypes.func, 
    onLongPress: PropTypes.func, 
    onPress: PropTypes.func, 
    style: PropTypes.object, 
    suppressHighlighting: PropTypes.bool, 
    testID: PropTypes.string, 
}; 

回答

2

解决

function MyText({ 
    children, 
    style, 
    ...props 
}) { 
    return (
    <Text 
     {...props} 
     style={[styles.default, style]} 
    > 
     {children} 
    </Text> 
); 
} 
1

你可以做到这一点更干净,简单地用迷人原住民:

import glamorous from "glamorous-native"; 

const MyText = glamorous.text({ ...styles }); 

<MyText> 
    ... 
</MyText