如何从嵌套的 child 组件更改 parent 组件?
How to change parent component from nested child component?
情况是这样的。有一个object的数组叫table数据存储table行,现在存储在vuex
组件结构是这样的:
Parent(页面)-> child 1(table布局)-> child 2(table正文)-> child 3(行)
在child 3、tableData.
中有一个删除索引的删除函数
parent 需要更新其数据 (selectedRow),如果删除的行的 ID 是 selectedRow Id,该数据将被传递给另一个不相关的 child 组件。
目前我正在使用 watch 来观察 table 数据以对 parent 组件中的变化做出反应。但是,watch 函数总是会循环遍历 tableData 以查找每当 tableData 更新时 selectedRow 是否仍然存在,这在数组很大时是非常不可取的。
我想过使用 emit,但它必须经过 2 个组件才能到达 parent,这使得代码难以管理
我也想过坐公交车,但也不是什么好做法
任何人都可以就这个问题给我任何建议吗?
因为你已经在 vuex 中存储了 tableData...你可以使用 mutation
从您的 child2 组件中,您只需调用一个突变即可从 tableData 中删除特定索引
例如
this.$store.commit('removeIndex', payload) // where removeIndex is a mutation handler and payload is the index value sent as argument
您可以将选定的行存储在 vuex 中,然后在子 3 中更新您的 vuex 存储中的选定行
情况是这样的。有一个object的数组叫table数据存储table行,现在存储在vuex
组件结构是这样的:
Parent(页面)-> child 1(table布局)-> child 2(table正文)-> child 3(行)
在child 3、tableData.
中有一个删除索引的删除函数parent 需要更新其数据 (selectedRow),如果删除的行的 ID 是 selectedRow Id,该数据将被传递给另一个不相关的 child 组件。
目前我正在使用 watch 来观察 table 数据以对 parent 组件中的变化做出反应。但是,watch 函数总是会循环遍历 tableData 以查找每当 tableData 更新时 selectedRow 是否仍然存在,这在数组很大时是非常不可取的。
我想过使用 emit,但它必须经过 2 个组件才能到达 parent,这使得代码难以管理
我也想过坐公交车,但也不是什么好做法
任何人都可以就这个问题给我任何建议吗?
因为你已经在 vuex 中存储了 tableData...你可以使用 mutation
从您的 child2 组件中,您只需调用一个突变即可从 tableData 中删除特定索引
例如
this.$store.commit('removeIndex', payload) // where removeIndex is a mutation handler and payload is the index value sent as argument
您可以将选定的行存储在 vuex 中,然后在子 3 中更新您的 vuex 存储中的选定行