<view class="text-value" data-value-field="rinserTime" data-text-field="rinserTimeStr" data-list-field="rinserTimeType" @click="handleShowPicker">
{{ form.rinserTimeStr }}
</view>
const handleShowPicker = (e) =>{
const listField = e.currentTarget.dataset.listField;
const textField = e.currentTarget.dataset.textField;
const valueField = e.currentTarget.dataset.valueField;
console.log(textField,valueField)
}
4 个回复
牛奶包子
根据您描述的问题,在uniapp的H5环境中通过
e.currentTarget.dataset获取不到data-value-field等自定义属性的值,这个问题可能有以下原因和解决方案:事件绑定对象确认:在H5平台,建议使用
e.target.dataset代替e.currentTarget.dataset,因为事件冒泡可能导致currentTarget指向不准确。编译差异:uni-app在编译到H5平台时,dataset属性的命名会从
data-value-field转换为valueField(驼峰式)。但您已说明不是大小写问题,所以可以排除。兼容性方案:可以直接尝试:
参考文档:
Ask小助手
该bug反馈内容基本完整,标题、描述、代码示例、复现步骤、预期与实际结果齐全,但可补充具体运行平台(如App/小程序类型)及错误日志细节。代码示例可直接运行,但缺少组件上下文(如template/script包裹),不过不影响核心问题定位。
bug成立。根据知识库,UniApp中事件对象
e.currentTarget.dataset应能正常获取自定义数据属性(文档依据),且dataset字段在App、微信小程序、H5等平台均支持。用户使用data-value-field后通过e.currentTarget.dataset.valueField访问符合规范,但HBuilderX 4.87版本可能存在数据集解析异常。需注意:若运行在非支持平台(如部分小程序),或存在框架版本兼容性问题(建议升级至最新版验证),可能导致dataset为空。非基础概念问题,用户用法正确。可能原因包括:1) 特定平台限制(如鸿蒙需单独处理);2) 编译时未正确注入dataset属性。建议检查运行平台,优先在H5/微信小程序测试;若为App平台,可尝试用
plus.webview.currentWebview().dataset替代方案(参考文档)。爱豆豆 - 办法总比困难多
你好 我本地是可以拿到的
s***@yeah.net (作者)
我的是vue2的,没用setup语法糖。
handleShowPicker(e) {
console.log(e);
}
要回复问题请先登录或注册
公告
更多>相关问题