alibaba / alibaba/lowcode-engine
ArraySetter绑定的prop数组在源码面板中调用了setState函数后将对象地址改变了
Open
- Dominant language
- TypeScript
- Stars
- 15.9k
- Forks
- 2.7k
- PR merge metrics
- No merged PRs in 30d
Description
## **详细描述**
ArraySetter绑定的prop数组在源码面板中调用了setState函数执行后讲对象地址发生了改变,即使setState什么也不干。
例如:使用ArraySetter绑定的prop名称为options。在组件代码内使用useEffect去依赖option。然后到源码面板中随意找个时机调用this.setState({}),会发现依赖了option的useEffect竟然执行了。
尝试1:将option用的ArraySetter替换成VariableSetter,此时再次调用this.setState({}),组件内部的useEffect则没有执行。
尝试2:在造一个option2,也是使用ArraySetter,在组件内部写两个useEffect, 第一个依赖option,第2个依赖option2,再次调用this.setState({})。使用ArraySetter的两个prop的useEffect都执行了
所以我的结论是:在执行this.setState()函数后,ArraySetter绑定的对象地址发生了改变
使用版本是:
lowcode-engine/1.1.10-beta.3
lowcode-engine-ext/1.0.7-beta.3
Contributor guide
No contributing guide indexed for this repository
Assessment
This issue has not been assessed yet.