javascript - 使用“未知”数据更新部分界面
问题描述
React 和 Typescript 中的应用程序。
我有这样的数据结构
export interface data {
name1: ConfigurationVariable,
name2: ConfigurationVariable,
name3: ConfigurationVariable,
name4: ConfigurationVariable,
}
和
export interface ConfigurationVariable {
id: string;
value: any;
name: string;
type: DataTypes;
default: DataType;
min: number | string | boolean;
max: DataType;
storage: StorageType;
}
在我的应用程序中,我有一个data类型的 useState 变量。
const [CVData, setCVData] = useState<data>(CV);
我的应用程序接收到这样的 websocket 消息:{name: any, value: any}。例如 {name: name2, value: 100}
我应该如何在我的数据状态中更新正确的值,在这种情况下是name2的值
有没有更好的方法来存储我的值?他们会更新很多。
谢谢!
解决方案
const {name, ...rest } = datafromWebSocket
setCVData(cvData=>({...cvData, [name]: {...cvData[name], ...rest}}))
数据结构似乎是正确的。使用这种结构进行更新应该很容易。如果它不起作用或我错过了什么,请告诉我。
推荐阅读
- jpa - @Any 字段和 @NamedEntityGraph
- mysql - windows无法在本地计算机上启动mysql服务错误1067
- css - ReactJS 材质 makeStyles
- javascript - 这在 HTML、JS 和 CSS 位于一个文件中时有效,但在它们位于不同文件中时无效
- html - 不同高度的 CSS 翻转效果
- javascript - JS中重构对象的最佳方式
- android - Androidx BottomNavigationView 在不同设备中的行为异常
- flutter - 如何使用颤振应用访问安卓手机的加速度传感器?
- android - 等待 FragmentTransaction 动画完成
- typescript - 将键事件传递给 Vue 和 Typescript 中的组件