gpt4 book ai didi

javascript - 搜索 "Cannot use ' 时出现 '0' 错误,这在本地主机上不会发生

转载 作者:行者123 更新时间:2023-12-02 20:52:46 24 4
gpt4 key购买 nike

我的项目位于 https://immense-refuge-12167.herokuapp.com/
如果我登录(邮箱:a@a.com,密码:11111111,或注册后登录),然后点击左上角的“浏览器”按钮,控制台会出现错误,如下所示:类型错误:无法使用“in”运算符搜索“0”

它仅发生在 Heroku 上,而不发生在 localhost 上。

发生错误的代码是:

      async mounted() {
if(this.$store.state.isUserLoggedIn){
const bookmarksOfThisUser = (await api.getAllBookmarks(this.$store.state.user.id)).data;
if(bookmarksOfThisUser.length != 0 && !!bookmarksOfThisUser){
for(var bookmark in bookmarksOfThisUser){
const song = (await api.getASong(bookmarksOfThisUser[bookmark]['songId'])).data;
this.bookmarks.push(song)
}
}
}
},

我意识到这可能是因为 bookmarksOfThisUser 的长度为 0,所以我使用 if(bookmarksOfThisUser.length != 0 && !!bookmarksOfThisUser) 来阻止它,但错误仍然发生。
mounted 函数是填充数据bookmarks,默认情况下是一个空数组。使用此数据的元素是 v-data-table,如下所示。

        <v-data-table
:headers="headers"
:items="bookmarks"
:items-per-page="5"
class="elevation-1"
v-if="this.bookmarks.length != 0"
>
<template v-slot:item.action="item">
<v-btn class="primary" small v-bind:to="{name: 'viewSong', params:{
songId: item.item.id
}}">View</v-btn>
</template>
</v-data-table>

我还用v-if检查了它的长度,但错误仍然发生......
谁能给我一些关于我哪里做错了的提示?为什么它只发生在 Heroku 上而不是本地主机上?

谢谢!

最佳答案

此代码可以检查它是否收到了预期的数据响应,然后处理该错误情况。

例如,您可以检查数据类型:

const response = await api.getAllBookmarks(this.$store.state.user.id);
const bookmarksOfThisUser = response.data;

if (Array.isArray(bookmarksOfThisUser)) {
for(var bookmark in bookmarksOfThisUser){
const song = (await api.getASong(bookmarksOfThisUser[bookmark]['songId'])).data;
this.bookmarks.push(song)
}
} else {
// example only of logging the data that is not as expected
console.log({response})
console.log({bookmarksOfThisUser})
}

关于javascript - 搜索 "Cannot use ' 时出现 '0' 错误,这在本地主机上不会发生,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61565167/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com