2017-02-09 30 views
0

我用下面的代碼工作,陣營>有條件的檢查任何一個道具可用

MessageDialog.propTypes = { 
    message: React.PropTypes.string.isRequired, 
    processedMessage: React.PropTypes.string.isRequired 
} 

我想知道有沒有什麼辦法來設置任何消息或processedMessage 「isRequired」它只會搜索以上兩者中的任何一個在任何時候都是真實的。

回答

0

您可能需要自定義的檢查類似如下:

function messageOrProcessedIsRequired(props, propName, componentName) { 
    return (!props.hasOwnProperty('message') && 
      !props.hasOwnProperty('processedMessage')) 
      && new Error(`Either "message" or "processedMessage" is required in component ${componentName}.`); 
} 

MessageDialog.propTypes = { 
    message: messageOrProcessedIsRequired, 
    processedMessage: messageOrProcessedIsRequired 
} 
+0

解決的問題。非常感謝你! – Artaxias

+0

歡迎你 –