我在一个路由视图中有一个组件,该组件又是另一个路由视图的一部分,因此树是这样的:<app> <appContainer> // This is a route-view <myView> // Also a route-view <myComponent>在myComponent中,我有以下条件渲染:<b-button v-if="isAdmin(currentUser)'">此功能表现出意外的行为isAdmin(username) { let userObject = this.$store.getters.getCurrentUserObject(username) return userObject.role === 'ADMIN'}userObject变成了undefined,直到我在函数内部添加了调试器,然后才意识到在页面渲染期间多次调用了它,其中某些存储data属性仍然为空,导致getters返回。可能是什么原因?为什么多次调用此方法?PS:我的组件中有一个for循环,这可能是原因吗?<div v-for="bike in bikes":key="bike.timestamp"> <p>{{ bike.name }}</p> <b-img fluid v-if="bike.imagePath" v-bind:src="returnImage(bike.imagePath)"></b-img> <p>{{ bike.timestamp}}</p></div>这在null挂钩中称为created() { this.getBikes() } (adsbygoogle = window.adsbygoogle || []).push({}); 最佳答案 乍一看听起来像是返回类型问题。isAdmin已经返回一个布尔值,与currentUser相比,布尔值反过来变得“显式”。这种比较的结果总是虚假的。您必须将v-if指令的条件更改为以下内容:v-if="isAdmin(currentUser)"关于多次通话,您必须更新问题以反映您提到的循环的详细信息。关于javascript - 在Vue组件渲染期间多次调用该函数,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/55855063/ (adsbygoogle = window.adsbygoogle || []).push({});
10-09 17:48