【问题标题】:Why Vue .sync command not working in router view?为什么 Vue .sync 命令在路由器视图中不起作用?
【发布时间】:2020-05-19 16:51:19
【问题描述】:

我正在尝试使用 Vue 中的 .sync 命令在组件之间同步变量。当我使用标签将组件放入页面时,它可以正常工作(例如:<my-component></my-component>)。当我将它绑定到<router-view> 时,它只能单向工作。正常吗?

当我点击组件内的链接时,它不会改变根 Vue 对象中test 的值。当我在根对象中更改它时,组件会正确继承该值。

Click here for an example

【问题讨论】:

  • 您能否详细说明“仅适用于单向”?此外,如果你在控制台中检查,Vue 实际上会警告你避免直接改变一个 prop。
  • 所以我不能编辑属性吗?在组件中它可以工作。

标签: javascript vue.js vue-router


【解决方案1】:

您正在尝试直接更新道具,更新它的正确方法是发出更新。记住 :test.syncshorthandv-bind:testv-on:update:test

在你的 Foo 组件上:

editTest: function() {     
  this.$emit('update:test', false)  // instead of this.test = false;        
}

小提琴:https://jsfiddle.net/hansfelix50/u7k5qpwz/

【讨论】:

  • 我试过了,还是不行:jsfiddle.net/o8r9nzv5/10
  • 你需要写在你的 Foo 组件(子)上。我在我的答案上放了一个 js 小提琴
猜你喜欢
  • 1970-01-01
  • 2022-09-23
  • 2020-01-10
  • 1970-01-01
  • 2021-06-27
  • 2022-01-23
  • 2017-09-22
  • 1970-01-01
相关资源
最近更新 更多