样板
<template>
<div class="profile-container">
<div class="theme-container">
<img class="theme" src="#" alt="PH">
</div>
<div class="profile-pic-container">
<img class="profile-pic" :src="responseData.profile_pic" alt="PH">
</div>
<div class="profile-info-container">
<div class="follow-message-button-container">
<button class="direct-message-button btn"><svg><use href="#chat-icon"></use></svg></button>
<Follow v-if="responseData.followers.includes($store.state.userId)"></Follow>
</div>
<h3 class="profile-username">@{{responseData.username}}</h3>
<p class="profile-bio">{{responseData.bio}}</p>
<div class="follower-following-count">
<a href="#" class="follower-count">Followers: {{responseData.followers.length}}</a>
<a href="#" class="following-count">Following: {{responseData.following.length}}</a>
</div>
</div>
</div>
</template>
响应数据。追随者。长度
正常工作,但响应数据。追随者。包括($store.state.userId)
不包括。它给了我一个错误,说:
无法读取未定义的属性包含
剧本
<script>
import Follow from "@/components/Follow";
import getAPICall from "@/mixins/getAPICall";
import getSecondAPICall from "@/mixins/getSecondAPICall";
import Post from "@/components/Post";
export default {
name: "Profile",
components: {Post, Follow},
data() {
return {
list: [],
responseData: {},
responseData2: {},
APIUrl: `api/user/${this.$route.params.userId}`
}
},
methods: {
},
mixins: [getAPICall, getSecondAPICall],
created() {
this.getAPICall(this.APIUrl)
this.getSecondAPICall(`api/user-post-list/${this.$route.params.userId}`)
}
}
</script>
这就是我的axios api调用的样子
混血儿
import {getAPI} from "@/axios.api";
import store from "@/store";
export default {
data() {
return {
getAPICall(APIUrl) {
getAPI.get(APIUrl, {headers: {Authorization: `Bearer ${this.$store.state.accessToken}`}}
).then(response => {
this.responseData = response.data
}).catch(err => {
console.log(err)
store.dispatch('useRefreshToken'
).then(_ => {
console.log(_)
getAPI.get(APIUrl, {headers: {Authorization: `Bearer ${this.$store.state.accessToken}`}}
).then(response => {
this.responseData = response.data
}).catch(err => {
console.log(err)
})
}).catch(err => {
console.log(err)
})
}
)
}
}
}
}
当我在created()钩子中控制台log responseData时,我得到一个空代理。
当我将它登录到挂载的钩子中时,我会得到一个具有正确数据的代理对象,但是如果我尝试从挂载的钩子调用API mixin,我仍然会得到与以前相同的错误,我的其余页面会中断。
浏览器中的Console logging responseData返回未定义。
您的代码中几乎不需要更改,如followers:[]
在数据()中设置了
返回
data() {
return {
list: [],
responseData: {followers: []},
responseData2: {},
APIUrl: `api/user/${this.$route.params.userId}`
}
},
问题就在这里,
回答,塔塔。渲染时不会立即发生跟随者。因为api调用响应需要时间。这样替换那条线
<Follow
v-if="responseData.followers && responseData.followers.includes($store.state.userId)">
</Follow>
也许您应该同步调用这些api,但这取决于您的需求。如果这两个api之间存在任何依赖关系,那么应该同步调用,但在其他任何情况下都可以。
//asynchronous operation
created() {
this.getAPICall(this.APIUrl)
this.getSecondAPICall(`api/user-post-list/${this.$route.params.userId}`)
}
//synchronous operation
async created() {
await this.getAPICall(this.APIUrl)
await this.getSecondAPICall(`api/user-post-list/${this.$route.params.userId}`)
}
尝试确保你有响应数据
。当vue首先创建模板时,它正在reponseData
中查找属性。在这种情况下,它没有找到属性。我曾几次面对这样的问题。页面在api获取数据之前呈现。声明响应Data: null
并检查
<div class="profile-container" v-if=" responseData !== null">
问题内容: 我查看了android文档,并查看了StackOverflow中的所有答案,但是,我似乎无法理解为什么我尝试显示的通知没有显示。每当我单击按钮时,应用程序就会崩溃,而不是显示通知,而有人可以告诉我为什么会发生这种情况吗? 这是堆栈跟踪 问题答案: 根据错误消息,您不能将其用作通知通道的ID-该名称专门为未定位API 26或更高版本的应用程序保留,用于发布未连接任何通道的所有通知。 您可
问题内容: 在严格模式下使用javascript时,为什么在匿名函数中未定义此函数?我知道为什么这样做可能有意义,但是我找不到任何具体答案。 例: 问题答案: 这是因为,在ECMAscript 262第5版之前,如果使用的人忘记使用该关键字,那会造成很大的混乱。如果在ES3中调用构造函数时忘了使用,请引用全局对象(在浏览器中),然后用变量破坏全局对象。 这是可怕的行为等人在ECMA决定,只是为了集
在下面的简单示例中,如果脚本中未设置条件,则运行脚本会打印“True”。然而,人们会期望它打印“False”。这种行为的原因是什么?
问题内容: 我有一个javascript类,每个方法都返回一个Promise。我想知道为什么在和中未定义。有没有更正确的方法来编写此代码? 我可以使用以下方法解决此问题: 但是不能完全确定为什么有必要。正在消灭? 问题答案: 始终是调用方法的对象。但是,将方法传递给时,您不会调用它!该方法将存储在某个地方,稍后再从那里调用。如果要保存,则必须这样做: 或者,如果您必须在ES6 之前的版本中进行操作
问题内容: 我有以下JavaScript代码: 我希望它应该输出以下输出: 但是,它打印以下内容: 为什么在第一次迭代后打印“未定义”?重要说明: 仅 当在JavaScript控制台中执行代码时,我 才会 看到这种行为。如果它是页面的一部分,则可以正常工作。 问题答案: 这是因为“ printCounter()”函数本身返回。那是控制台告诉您表达式的结果。 通过添加到末尾来更改“ printCou
同事们,你能帮我做注释吗?我的目标是将数据库事务管理传递给Spring,并在当前情况下将数据保存在数据库中。 我在DAO类中有两种方法: 服务方式: 我有一个测试,调用这两种方法。我可以使用方法从表中读取数据。但是调用方法后没有保存数据。这是我的问题。当我取消注释中与事务相关的代码时,一切正常。正如我所理解的,在这种情况下,Spring事务管理器不起作用。 如何使用spring@Transacti