2017-03-26 13 views
0

기본 네이티브에서 defaultProps를 사용할 수 있습니까? 내가 defaultProps을 정의하는 다음과 같은 두 가지 방법을 시도하고 당신이 원하는 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' } 

답변

0

에 액세스하려고 할 때 내가 널 수 :

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

someData 문자열을해야한다고 말한다하지만, 필요하지 않습니다.

당신의 render()에서 다음

, 당신은이 작업을 수행 할 수없는 경우가 Foo.defaultProps.someData를 제공하거나 않다면

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

this.props.someData을 사용합니다.

Text 요소 (예 : <Text>{this.props.someData || Foo.defaultProps.someData}</Text>)에 {this.props.someData || Foo.defaultProps.someData}을 입력해야한다고 생각합니다.

2

나는 항상 이런 식을하고 그것을 잘 작동합니다 :

class SliderButton extends React.Component {}; 

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

SliderButton.defaultProps = { 
    animateBackground: false 
}; 

export default SliderButton;