如何获取@react-native-community/datetimepicker触发onChange的实例ID
解决方案
@react-native-community/datetimepicker 本身未提供将自定义ID/name属性透传到onChange事件的能力,你可以通过闭包预先绑定标识的方式区分不同实例,这是该场景下的标准实现方案,不需要依赖组件内部属性支持,稳定性和灵活性都更高。
实现步骤
- 改造组件的onChange绑定逻辑,用箭头函数包裹处理调用,额外传入自定义的实例标识:
<DateTimePicker testID="myDate1" value={myDateValue} mode="date" display="default" onChange={(event, selectedDate) => this.onCalendarDateChange(event, selectedDate, 'myDate1')} /> {/* 多实例参照上述写法,传入不同标识即可,示例如下 */} <DateTimePicker testID="myDate2" value={myDate2Value} mode="date" display="default" onChange={(event, selectedDate) => this.onCalendarDateChange(event, selectedDate, 'myDate2')} />
- 改造事件处理函数,新增参数接收传入的标识:
onCalendarDateChange(event, selectedDate, pickerId) { // pickerId 即为当前触发事件的选择器标识,对应你传入的 myDate1 / myDate2 console.log('当前操作的选择器ID:', pickerId) // 后续根据pickerId执行对应业务逻辑即可 }
注意:该组件返回的event对象中未包含自定义标识相关字段,不需要尝试从event属性中取值。
内容的提问来源于stack exchange,提问作者Sam
相关产品推荐
相关产品推荐

