vue.js - 样式绑定不随模板结构更新 [Vue]
问题描述
在我的示例中,我想在单击元素后在元素周围绘制边框。在这个例子中,它完美地工作:
<div v-for="(parent, index) in $store.getters.getInfo" :key="index">
<div @click="setClicked" :id="child.id" v-for="child in parent"
:style="[child.clicked ? {'border-color': 'black'} : {'border-color': 'white'}]">
</div>
</div>
但是当我尝试使用更复杂的结构和模板标签时,样式绑定无法触发:
<div v-for="i in 12">
<template v-for="(user, index) in $store.getters.getSharedUsers">
<div :id="child.id" v-for="child in $store.getters.getSharedInfo[user[0]][i-1]"
:userID="child.userID" @click="setClicked"
:style="[child.clicked ? {'border-color': 'black'} : {'border-color': 'white'}]">
</div>
</template>
</div>
在我的突变中,我将属性设置为:
Vue.set(state.element_map[payload.uID][payload.dID], 'clicked', true);
当我调试时,我在调用 setClicked 函数后看到数据结构中两个代码示例的变化,但只有在第一个中触发了样式绑定并绘制了边框。我看到的唯一区别是模板标签的使用和更复杂的数据结构。但它也应该在第二个示例中工作,因为 clicked 属性设置正确。那么我错过了什么?谢谢!
解决方案
推荐阅读
- python - 分组后将具有值的行转换为多列
- javascript - 关于函数中变量范围的问题
- c# - 对 API 的调用异步工作,但我需要它运行同步
- javascript - 如何将 ASP.NET Webforms 中中继器内部的 Eval 值传递给 JavaScript 函数
- java - 在 Spring Cloud for AWS SNS 中,在接收 SNS 消息时抛出 java.lang.IllegalArgumentException
- android - 从 Git 和 Android 克隆一个 Android 项目给我这个错误“失败:构建完成,失败 3 次。”
- python - odoo 14 message_new 在自定义模块中
- javascript - 基于对象构建可重用的 Vue 组件
- nginx - 使用 NGINX 重写 css 和 js 文件的根
- shopify - 在名为 blockshop 的 shopify 主题中添加“同意条款和条件”复选框