javascript - Vue 不会更新 for 循环中数组更改的 props 数据
问题描述
我在 for 循环中制作了元素,例如
<b-card v-for="(campaign, i) in settingsData.campaigns" v-bind:key="i">
<countdown :startDate="campaign.startDate"
:period="campaign.period"
:time="campaign.hour_every_nth"
:end="campaign.endDate">
</countdown>
<b-button @click="onClickDeleteCampaign(i)">DELETE</b-button>
</b-card>
假设我settingsData.campaigns
使用以下代码删除了一个项目:
onClickDeleteCampaign(index) {
this.settingsData.campaigns.splice(index, 1);
}
它实际上从中删除了该项目,settingsData.campaigns
但我提供给countdown
like startDate
, period
,time
的数据end
根本没有更新,并且它被代码删除的数据覆盖。
我该如何解决这个问题?
解决方案
使用<b-card v-for="(campaign, i) in settingsData.campaigns" v-bind:key="i">
和使用campaign
而不是settingsData.campaigns[i]
.
这意味着您正在迭代Array
/ Object
: settingsData.campaigns
。campaign
将是当前活动,i
并将成为该活动的索引。
您正在尝试迭代属性length
而不是实际的对象或数组。
推荐阅读
- javascript - 所有的时间和报告都应该在基于用户的时区。不限于任何特定的时区
- c# - 复制所有目录时跳过“$RECYCLE.BIN”
- sympy - SymPy:如何收集多变量项?
- python - 如何使用 python 在 mapreduce 中获得直方图(Graph)中的结果?
- r - 使用 Plotly 的交互式绘图
- unity3d - 如何从 SteamVR 2.0 获取 Unity 项目的 Vive 控制器转换组件?
- python - 运行 python pd.read_csv 代码时收到错误消息
- c++ - sfml dosen't want to link in visual studio 2019
- react-native - React 原生视频 Cookie
- z3 - Quantifiers with MaxSMT in z3