<view class="spacing-col" @click="likeArticle(data._id)"><!-- 这里直接报错了,不会执行likeArticle,data是unicloud-db 查出来的数据_id 是表必须有的 -->
<uni-icons type="hand-thumbsup" size="14" color="#999"></uni-icons>
<text class="text-color-grey">点赞 {{data.like_count}}</text>
</view>
- 发布:2021-11-11 20:52
- 更新:2023-10-18 22:01
- 阅读:730
产品分类: uniapp/小程序/微信
PC开发环境操作系统: Windows
PC开发环境操作系统版本号: 10
HBuilderX类型: Alpha
HBuilderX版本号: 3.2.13
第三方开发者工具版本号: 1.05.2110290
基础库版本号: 2.20.2
项目创建方式: HBuilderX
操作步骤:
预期结果:
likeArticle(id){
//执行该方法
}
likeArticle(id){
//执行该方法
}
实际结果:
微信调试器
VM247 WAService.js:2 TypeError: Cannot read property '_id' of undefined
at getTarget (vendor.js? [sm]:10400)
at getTarget (vendor.js? [sm]:10402)
at VueComponent.Vue.__get_value (vendor.js? [sm]:10505)
at vendor.js? [sm]:1216
at Array.forEach (<anonymous>)
at processEventExtra (vendor.js? [sm]:1200)
at processEventArgs (vendor.js? [sm]:1251)
at vendor.js? [sm]:1359
at Array.forEach (<anonymous>)
at vendor.js? [sm]:1330(env: Windows,mp,1.05.2110290; lib: 2.20.2)
微信调试器
VM247 WAService.js:2 TypeError: Cannot read property '_id' of undefined
at getTarget (vendor.js? [sm]:10400)
at getTarget (vendor.js? [sm]:10402)
at VueComponent.Vue.__get_value (vendor.js? [sm]:10505)
at vendor.js? [sm]:1216
at Array.forEach (<anonymous>)
at processEventExtra (vendor.js? [sm]:1200)
at processEventArgs (vendor.js? [sm]:1251)
at vendor.js? [sm]:1359
at Array.forEach (<anonymous>)
at vendor.js? [sm]:1330(env: Windows,mp,1.05.2110290; lib: 2.20.2)
bug描述:
H5正常
小程序报错:view事件传参无法读取里unicloud-db 查出来的_id
附件有张图片无法插入到描述
问题代码
<view class="spacing-col" @click="likeArticle(data._id)"><!-- 这里直接报错了, -->
<uni-icons type="hand-thumbsup" size="14" color="#999"></uni-icons>
<text class="text-color-grey">点赞 {{data.like_count}}</text>
</view>
微信小程序 调试器报错
VM247 WAService.js:2 TypeError: Cannot read property '_id' of undefined
at getTarget (vendor.js? [sm]:10400)
at getTarget (vendor.js? [sm]:10402)
at VueComponent.Vue.__get_value (vendor.js? [sm]:10505)
at vendor.js? [sm]:1216
at Array.forEach (<anonymous>)
at processEventExtra (vendor.js? [sm]:1200)
at processEventArgs (vendor.js? [sm]:1251)
at vendor.js? [sm]:1359
at Array.forEach (<anonymous>)
at vendor.js? [sm]:1330(env: Windows,mp,1.05.2110290; lib: 2.20.2)
函数
likeArticle(id) {
uniCloud.callFunction({
name: 'article',
data: {
action: 'likeArticle',
params: {
id:id
},
}
}).then((res) => {
if (res.result.like) {
uni.showToast({
icon: 'none',
title: '点赞成功'
})
} else {
throw new Error(res.result.msg)
}
}).catch((err) => {
uni.showModal({
content: err.message || "点赞失败",
showCancel: false
})
});
},
相关代码
<unicloud-db ref="udb" v-slot:default="{data, loading, error, options}"
:options="options" collection="opendb-news-articles,opendb-news-categories"
field="avatar,category_id{name},comment_status,content,last_modify_date,like_count,publish_date,title,origin,user_id,view_count"
:where="queryWhere" :getone="true" :manual="true" @load="detailLoad"
action="article-foreign-key,article-read">
<view v-if="error">{{error.message}}</view>
<view v-else-if="loading">
<uni-load-more :contentText="loadMore" status="loading"></uni-load-more>
</view>
<view v-else-if="data">
<view>
<view class="title spacing-row"><text selectable="true"
user-select="true">{{data.title}}</text>
</view>
<view class="text-color-grey">
<text class="spacing-col" selectable="true"
user-select="true">{{data.origin?data.origin:data.user_id.length>0?data.user_id[0].nickname:""}}</text>
<uni-dateformat selectable="true" user-select="true" class="spacing-col"
:threshold="[0, 0]"
:date="data.last_modify_date?data.last_modify_date:data.publish_date">
</uni-dateformat>
<text class="spacing-col text-color-placeholder"
@click="searchCategory({id:data.category_id && data.category_id[0] && data.category_id[0]._id,name:data.category_id && data.category_id[0] && data.category_id[0].name})">{{data.category_id && data.category_id[0] && data.category_id[0].name||'无分类'}}</text>
</view>
<view class="tool-bar spacing-row">
<view class="spacing-col">
<uni-icons type="eye" size="14" color="#999"></uni-icons>
<text class="text-color-grey">阅读 {{data.view_count}}</text>
</view>
<view class="spacing-col" @click="likeArticle(data._id)">
<uni-icons type="hand-thumbsup" size="14" color="#999"></uni-icons>
<text class="text-color-grey">点赞 {{data.like_count}}</text>
</view>
<view class="spacing-col" v-if="data.comment_status" @click="toComment">
<uni-icons type="chat" size="14" color="#999"></uni-icons>
<text class="text-color-grey">评论</text>
</view>
</view>
<view>
<!-- <image class="image" mode="widthFix" :src="data.avatar"></image> -->
<image class="image" mode="widthFix" src="../../../static/bg-image.jpeg"></image>
</view>
<view class="spacing-row spacing-col">
<u-parse :content="data.content?data.content:' '" />
</view>
<view class="comment spacing-row" v-if="data.comment_status">
<vvevn-comment :articleId="data._id"></vvevn-comment>
</view>
</view>
</view>
</unicloud-db>