2017-03-26 29 views
0

Ist es möglich, defaultProps in React Native zu verwenden? Ich habe die folgenden zwei Wege versucht defaultProps zu definieren und ich null, wenn die defaultPropdefaultProps in React Native?

export default class Foo extends Component { 
    // 1. define defaultProps within Class 
    static defaultProps = { 
    someData: 'Hello', 
    } 

    constructor(props) { 
    super(props); 
    } 

    componentDidMount() { 
    console.log(this.props.someData); 
    } 

    render() { 
    return (
     <View> {this.props.someData} </View> 
    ) 
    } 
} 
    // 2. define defaultProps outside Class 
Foo.defaultProps = { someData: 'Hello' } 

Antwort

0

Sie zugreifen versuchen wollen dies:

Foo.propTypes = { 
    someData: React.PropTypes.string 
}; 

Diese besagt, dass someData eine Zeichenfolge sein sollte, aber es ist nicht notwendig.

Dann in Ihrem render(), können Sie dies tun:

render() { 
    return (
     <View> 
     {this.props.someData || Foo.defaultProps.someData} 
     </View> 
    ); 
    } 

Diese this.props.someData verwendet, wenn es oder Foo.defaultProps.someData wenn nicht zur Verfügung gestellt wird.

Ich denke auch, Sie müssen {this.props.someData || Foo.defaultProps.someData} in einem Element wickeln (d. H. <Text>{this.props.someData || Foo.defaultProps.someData}</Text>).

2

Ich mache es immer so und es funktioniert gut:

class SliderButton extends React.Component {}; 

SliderButton.propTypes = { 
    animateBackground: PropTypes.bool 
}; 

SliderButton.defaultProps = { 
    animateBackground: false 
}; 

export default SliderButton;