在Vue组件渲染期间多次调用该函数

时间:2019-04-25 17:51:59

标签: javascript vue.js

我在一个路由视图中有一个组件,该组件又是另一个路由视图的一部分,所以树是这样的:

data["Date"]= pd.to_datetime(data["Date"]) 
data.head(15)

    Date      Max_Temp  Min_Temp
0   2011-01-01  27.0    14.2
1   2011-02-01  26.4    15.8
2   2011-03-01  27.8    15.4
3   2011-04-01  26.4    13.6
4   2011-05-01  26.4    15.6
5   2011-06-01  25.8    15.2
6   2011-07-01  26.0    13.0
7   2011-08-01  27.0    13.2
8   2011-09-01  28.8    12.8
9   2011-10-01  27.2    13.6
10  2011-11-01  27.8    10.2
11  2011-12-01  27.2    9.4
12  2011-01-13  28.0    8.6
13  2011-01-14  28.2    8.8
14  2011-01-15  28.0    10.4

<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循环,这可能是原因吗?

null

这在<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> 挂钩中被调用

created

2 个答案:

答案 0 :(得分:1)

听起来像一眼发现回音类型。

#ifndef B_H #define B_H #include <memory> class Imp; class B { public: B(): ptr( nullptr, []( Imp*){}) { } ~B(); private: std::unique_ptr< Imp, void ( *)( Imp*)> ptr; }; #endif // B_H 已经返回了一个布尔值,与isAdmin相比,布尔值反过来变得“明确”。这种比较的结果总是虚假的。

您必须将currentUser指令的条件更改为:

v-if

关于多次通话,您必须更新问题以反映您提到的循环的详细信息。

答案 1 :(得分:0)

PS: I have a for loop in the component, could this be the reason? 可能是原因,因为它在循环确定时会渲染多次。

为您的循环代码提供更多信息以进行调试。