用户反馈 onDetailTap 中使用的 dataset.id 是错误的。
data-id="{{item.id}}"catchtap="onDetailTap"<viwe> → <view>onDetailTap 函数正确获取 e.currentTarget.dataset.idgoToActivityDetail 函数正确传递参数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>