子组件调用父组件的方法

自定义了一个下拉的子组件,

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调用。

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值