自定义了一个下拉的子组件,
render() {
return (
<View style={styles.container}>
<Text style={{fontFamily:Fonts.roboto_regular, height:adapter(19), paddingLeft:adapter(10), fontSize:16, color:'rgba(66,66,66,0.7)'}}>{this.props.tips}</Text>
<View style={styles.componentStyle}>
<ModalDropdown
ref="spinner"
style={styles.downStyle}
textStyle={styles.dropdown_text} //按钮文本的样式
dropdownStyle={styles.dropdown_dropdown} //下拉列表的样式
dropdownTextStyle={styles.dropdownTextStyle} //下拉选项文本的样式
dropdownTextHighlightStyle={styles.dropdownTextHighlightStyle} //下拉列表的样式选择了选项文本
options={this.props.data}
defaultValue={this.props.defaultValue}
animated={false}
showsVerticalScrollIndicator={true}
// onSelect={this._dropdown_onSelect.bind(this)}
onSelect={this.props.onSelect}
disabled={!this.props.enable}
onDropdownWillShow={this.props.onDropdownWillShow}
select={this.props.select}
/>
<TouchableOpacity style={styles.downIconStyle} onPress={() =>{
console.log('spinner enable:', this.refs.spinner.props.enable);
if(!this.refs.spinner.props.disabled){
this.refs.spinner.show();
}
}}>
<Image style={styles.downIconStyle} source={Images.downIcon} mode='stretch' />
</TouchableOpacity>
</View>
<View style={styles.lineStyle}></View>
</View>
);
}
父组件调用的时候需要调用子组件的某个方法。
<Spinner ref='make' enable={this.state.makeEnable} tips={this.state.makeValueTips} data={this.state.makeData} defaultValue={this.state.makeValue} onSelect={(idx, value) => {
let isRefresh = (this.state.makeValue == value);
if(!isRefresh){
this.refs.model.refs.spinner.select(-1);
this.refs.trim.refs.spinner.select(-1);
this.setState({
makeValue:value,
makeValueTips:TextConstant.TireMake,
trimEnable:false,
});
this.httpRequestModel(value);
}
}}/>
this.refs.model.refs.spinner.select(-1);
this.refs.trim.refs.spinner.select(-1);
可以使用refs调用。