antd-mobile中页面更新导致picker自动刷新的问题

  1. 由于界面自动刷新,尤其是开了延时后刷新频繁,会导致picker打开后选中的条目自动回到当前value上,此时需禁止自动更新。
  2. 如下,在打开picker时,通过onVisibleChange (列改变回调)设置一个临时的tempPickerVal,界面显示期间一直用这个值,点击确定时调用onChange再设置当前pickerVal。
state = {
    isPickerShow: false,
    tempPickerVal: ''
}
onVisibleChange = (pickerVal,v) => {
    this.setState({
        tempPickerVal:pickerVal,
        isPickerShow: v,
    });
}
onPickerChange = (v) => {
    this.setState({
        tempPickerVal:v[0]
    });
}

//render -> return
<Picker onVisibleChange={this.onVisibleChange.bind(this,pickerVal)}
        ……
        value={[isPickerShow ? tempPickerVal : pickerVal]}
        onChange={this.changePicker}
        onPickerChange={this.onPickerChange}>
    <List.Item id="picker"/>
</Picker>}

注意:onPickerChange方法的参数是个数组而不是数值,所以不能直接放入value!

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值