2017-07-26 17 views
1

如果我試圖設置一個proptype爲PropTypes.element,不需要,什麼是正確的默認值?如果元素的proptype是什麼默認的?

static propTypes = { 
    expandable: PropTypes.bool, 
    popover: PropTypes.element, 
    } 

    static defaultProps = { 
    expandable: false, 
    popover:() => {}, 
    } 

感謝

+0

是吧'React.createElement( '格')'。只是猜測在這裏! – vijayst

+0

是的,這工作。我曾嘗試過'React.createElement()',忘記了它需要一個實際的元素標籤。做出答案,我會批准 –

+0

爲什麼你會有一個額外的元素?如果它是可選的,則不需要默認值。只需有條件渲染'{this.props.popover || null}' - 同名適用於您的布爾值。 if(this.props.expandable){}' - >'' - > truthy –

回答

1

默認值可以是:

React.createElement('div') 
0

我覺得undefined應該工作。

static defaultProps = { 
    expandable: false, 
    popover: undefined, 
} 
0

適當默認情況下,或不存在的組件,在陣營是null。您可以在render()喜歡使用它:

render() { 
    return (
     <div>{this.props.popover ? this.props.popover : null}</div> 
    ); 
} 

或者乾脆staticProps定義它:

static defaultProps = { 
    expandable: false, 
    popover: null, 
} 
相關問題