【问题标题】:Vuejs update a list in reactive mannerVuejs 以反应方式更新列表
【发布时间】:2019-10-19 18:41:34
【问题描述】:

我有两个组件 1.viewAndUpdateDish.vue 2.updateDish.vue

viewAndUpdateDish

  1. 用户从下拉菜单中选择餐厅
  2. 该特定餐厅的菜肴将被过滤出来并加载到餐桌上。

  1. 然后用户点击菜品上的更新按钮并转到updateDish.vue 组件并更新菜品。
  2. 然后在他更新后,菜用户被重定向到viewAndUpdateDish

当用户重定向到viewAndUpdateDish 时,应该选择之前选择的餐厅并加载菜肴。这是我的用例。

到目前为止,我所做的是,

  1. 在 vuex 商店中创建一个名为 pickRestaurantId 的变量,当用户选择餐厅时,我更新了该 ID。
  2. 并且在updateDish 组件中,在更新函数的最后,我发出了这样一个事件,this.$root.$emit("clickedUpdate");
  3. 然后在 viewAndUpdateDish 组件中我做了

    mounted() {
     this.$root.$on("clickedSomething", () => {
     this.loadDishes(this.pickedResViewAndUpdateDish);
    });
    },
    

但这似乎不起作用! 如何使用 vuejs 实现这一点? 希望我的问题对你来说很清楚。

【问题讨论】:

  • 您可能需要一个全球性的地方来存放您的菜肴数据并在多个地方使用 - 您在使用vuex吗?如果不是,我建议管理您的商店 - vuex.vuejs.org
  • 我认为你必须使用全局 vuex 并且你必须在“计算”中编写一个函数。每当任何计算出的依赖变量组件都会自动重新渲染。
  • 如果你只想使用之前状态的组件,我们必须使用 组件
  • @SatyamPathak 我已经使用 vuex 来保留变量pickRestaurantId
  • 请通过计算并保持活力..我认为通过这些概念可以实现您需要的任何内容..

标签: vue.js vuejs2 vuex


【解决方案1】:

在更新逻辑之后的“viewAndUpdateDish”组件上,您可以执行以下操作: this.$emit('clickedUpdate',yourResturantId);

然后在你的父组件上确保你正在监听“clickedUpdate”事件:

<update-dish @clickedUpdate="loadDishes($event)"></update-dish>

【讨论】:

    猜你喜欢
    • 2017-04-13
    • 2018-08-13
    • 1970-01-01
    • 2022-10-31
    • 1970-01-01
    • 1970-01-01
    • 2020-09-04
    • 2023-01-20
    • 1970-01-01
    相关资源
    最近更新 更多