vue.js - VueX 没有检测到变化
问题描述
我有一个具有两个深度级别的对象和其他两个对象:
$store.state.object.level1.level2
一级和二级都是动态的,我需要检测它们何时在 a 中定义v-if
:
<Component v-if="$store.state.object.level1 && $store.state.object.level1.level2">
该语句在 Level1 被定义时有效,但在 level2 被定义时无效。
有人可以解释这是为什么吗?
解决方案
无论好坏(可能更糟)我已经停止更新状态state.x = newX
并开始使用Vue.set(state, 'x', newX)
这解决了我更新观点的所有问题,但不知何故,我觉得有比这更好的解决方案。
所以在你的情况下,我会写这个
Vue.set($store.state.object.level1, 'level2', newValueForLevel2)
推荐阅读
- c# - Automapper AssertConfigurationIsValid 不检查 ReverseMap
- unix - Grep 文件中的十六进制字符
- javascript - 如何找到每个下拉菜单的长度?
- javascript - 护照登录问题_login
- java - Hibernate @One 映射:NullPointer 导致 SingleTableEntityPersister 异常
- wordpress-gutenberg - 当 innerBlock 更改时,Gutenberg 更新 ParentBlock
- pointers - 通过多个“as”转换转换原始 str 是如何工作的?
- regex - 在 IntelliJ IDEA 中搜索时排除具有某些扩展名的文件
- r - 显示县投票的简单条形图
- java - 如何强制 Spring Boot JVM 进入 UTC 时区?