dcloudio / dcloudio/uni-app

v2小程序端给对象设置动态key,如果key中包含[]会导致setData失败,js报错

Open
#5,463 3 comments 0 reactions 0 assignees View on GitHub
Dominant language
JavaScript
Stars
41.6k
Forks
3.7k
Avg merge
7h 6m
Merged PRs (30d)
6

Description

### 发行方式

小程序

### 具体平台

微信开发工具

### 开发环境

Windows

### 项目创建方式

CLI命令行

### 依赖版本

2.0.2-4060520250512001

### 问题描述

```
data: {
test: {},
}
onLoad: {
this.$set(this.test, '[key]', 1)
}
```
v2在执行diff的时候会将对象中变更的key扁平化,当key中包含[]时diff的结果会变成
```
this.setData({
test.[key]: 1
})
```
导致微信小程序在执行的时候报错

**data path descriptor "test.[key]" is illegal at char 6 (illegal index)**

### 重现步骤

1. 新建uni-app v2项目
2.
```
data: {
test: {},
}
onLoad: {
this.$set(this.test, '[key]', 1)
}
```

### 期望行为

_No response_

### 实际行为

_No response_

### 截图或录屏

_No response_

Contributor guide

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.