用户反馈 onDetailTap
中使用的 dataset.id
是错误的。
data-id="{{item.id}}"
catchtap="onDetailTap"
<viwe>
→ <view>
onDetailTap
函数正确获取 e.currentTarget.dataset.id
goToActivityDetail
函数正确传递参数utils.navigateTo
正确构建 URL 参数onLoad
正确接收 options.id
参数虽然使用了 catchtap
阻止冒泡,但可能存在其他点击事件干扰。
可能在数据还未完全加载时就触发了点击事件。
在实际小程序环境中可能存在与测试环境不同的行为。
可能存在旧代码缓存导致的问题。
在 onDetailTap
函数中添加详细的调试日志:
onDetailTap(e) {
console.log('=== onDetailTap 调试信息 ===');
console.log('事件对象:', e);
console.log('currentTarget:', e.currentTarget);
console.log('dataset:', e.currentTarget.dataset);
console.log('dataset.id:', e.currentTarget.dataset.id);
console.log('dataset.id 类型:', typeof e.currentTarget.dataset.id);
const id = e.currentTarget.dataset.id;
if (id) {
console.log('准备跳转,ID:', id);
this.goToActivityDetail(id);
} else {
console.log('❌ ID 为空或未定义');
console.log('完整 dataset:', JSON.stringify(e.currentTarget.dataset));
}
}
确保在数据完全加载后才显示按钮:
<button
wx:if="{{item.id}}"
class="ghost-btn"
catchtap="onDetailTap"
data-id="{{item.id}}"
>
查看详情
</button>