为什么在加载组件之后会发生beforeRouteEnter中的下一个功能?

时间:2019-07-18 11:14:28

标签: vue.js vue-router

beforeRouteEnter事件中,我调用promise / http,这需要一秒钟来获取一些数据。

获得数据后,我将传递到组件中的result属性。 (使用next函数)。

我还有一个吸气剂,它从道具中获取价值。

问题是vue在设置值之前通过next函数调用了getter,所以我得到了undefined

如何解决此错误?

这里是code example of the problem

enter image description here

1 个答案:

答案 0 :(得分:0)

问题是,当您使用next(vm ...)时,您将使用@Prop定义的页面组件的上下文。您不能以这种方式修改@Prop值。有一些技巧可以做到这一点,但是在这种情况下真的需要使用@Prop吗?为什么只在页面组件中不使用基本变量?

如果替换

@Prop() result

具有:

result: Object = {};

一切正常。

如果您在这里真的需要prop,也许您可​​以将prop值复制到某个变量中(如果需要检测更改,请使用watch),但是我在这里看不到prop的任何用途。

希望这个答案对您有帮助:)