javascript - Stenciljs @State() 不适用于键:值对
问题描述
我的 Stenciljs 项目中有一个 Key: Value 对对象,带有 @State() 装饰器,因此当一个或多个值被更新但重新渲染不会发生时,组件会重新渲染。我的对象看起来像这样:
@State() selected: {[key: string]: string} = {x: "", y: "", z: ""};
我通过以下方式更新它:this.selected['x'] = newValue;
我知道对象会在需要时更新,并且不会出现错误。
关于如何解决这个问题的任何想法?
谢谢
解决方案
基于模板文档:
改变一个对象不会触发 Stencil 中的视图更新,但返回一个新的对象副本会
因此,您需要将selected
对象视为不可变的:
this.selected = {...this.selected, x: newValue};
推荐阅读
- java - 无法访问工作区中的属性文件
- spring-boot - SpringBoot - 如何从 MQ 消息侦听器调用控制器
- reactjs - Material-UI Box 组件导入顺序和样式标签生成
- c# - 输出参数或回调?
- android - Hyperledger Indy pool 连接 android 错误 -> InvalidStateException:SDK 库遇到了意外的内部错误
- java - 方法没有读取我输入的字符串
- .net - 是否可以在 Docker-compose 中为构建上下文指定绝对路径?
- scala - 数据帧火花/斯卡拉中的无穷大值
- android - 验证为什么对象只在第二次垃圾收集运行时被垃圾收集
- android - 如何使用 gms.vision.CameraSource 进行缩放