0
我正在製作一個自動完成組件,它可以進行實時搜索。這些是它的道具:React Native有條件地接受道具
<AutoCompleteInput
ref={autocomplete.tag}
tag={autocomplete.tag}
type={autocomplete.type}
title={autocomplete.title}
required={autocomplete.required}
photoRequired={autocomplete.photoRequired}
defaultValue={autocomplete.defaultValue}
options={autocomplete.options}
titleKey={autocomplete.titleKey}
valueKey={autocomplete.valueKey}
singleSelection={false}
maxSuggestionNumber={50}
minimumCharacterNumber={-2}
/>
singleSelection,maxSuggestionNumber和minimumCharacterNumber是可選的道具。我想給他們默認值,我也應該檢查他們的道具值。例如; minimumCharacterNumber的默認值應該是'0',所以如果我們不使用該道具,'0'值應該傳入組件。但是,如果該值低於0,則組件應使用默認值'0'。 我試過功能 public static defaultProps() { ...... }
,但我很困惑,並且無法處理它的條件。 它的普通技術是什麼?任何解決方案都將受到重視。
編輯:我解決了我的問題,我想分享。
public static defaultProps = {
minimumCharacterNumber: 0,
maxSuggestionNumber: 50,
singleSelection: false,
}
constructor(props: ACModalProps) {
super(props)
this.state = {
maxSuggestionNumber:
this.props.maxSuggestionNumber && this.props.maxSuggestionNumber > 0
? this.props.maxSuggestionNumber
: ACModal.defaultProps.maxSuggestionNumber,
minimumCharacterNumber:
this.props.minimumCharacterNumber && this.props.minimumCharacterNumber > 0
? this.props.minimumCharacterNumber
: ACModal.defaultProps.minimumCharacterNumber,
singleSelection: this.props.singleSelection
? this.props.singleSelection
: ACModal.defaultProps.singleSelection,
.
.
.
我創建了公共靜態defaultProps,然後我把默認值。我將這些屬性傳遞給狀態,然後檢查狀態中的值。我使用了來自狀態的值。如果你使用打字稿,你不應該忘記在他們的proptypes狀態界面中寫這些屬性的名字。