alibaba / alibaba/lowcode-engine

ArraySetter下condition联动失效

Open
#2,438 1 comment 0 reactions 1 assignee Claimed by @hzd822 View on GitHub
Dominant language
TypeScript
Stars
15.9k
Forks
2.7k
PR merge metrics
No merged PRs in 30d

Description

## **Describe the bug (required)** / **详细描述 bug(必填)**
AliLowCodeEngine: **v1.1.10**
AliLowCodeExt :有问题: **v1.0.6-beta.28** , 没问题:**1.0.6-beta.25**
`ArraySetter` 下,如果配置了condition联动,相关属性配置不能存在defaultValue配置,否则会导致联动失效(**复现**:首次拖入组件到编辑器之后,点击编辑,如果组件失去焦点,再获取焦点,再编辑则正常)

A clear and concise description of what the bug is. / 请提供清晰且精确的 bug 描述
**相关物料配置如下**:
```
configure: {
props: [
{
title: 'items',
name: 'items',
description: '按钮子项设置',
display: 'accordion',
setter: {
componentName: 'ArraySetter',
props: {
itemSetter: {
componentName: 'ObjectSetter',
props: {
config: {
items: [
{
title: '会有问题',
name: 'issue',
setter: 'BoolSetter',
// todo 开启defaultValue 会导致下面的联动失效
defaultValue: true,
// initialValue: true,
},
{
title: '文本',
name: 'content',
setter: 'StringSetter',
// initialValue: '默认值。。。',
// todo 开启defaultValue 会导致下面的联动失效
defaultValue: '默认值。。。',
},
{
name: 'icon',
title: { label: '图标', tip: 'icon | 设置按钮的图标组件' },
propType: 'node',
setter: {
componentName: 'SlotSetter',
// todo 开启以下initialValue会导致下面的联动失效
initialValue: {
type: 'JSSlot',
value: [
{
componentName: 'Icon',
props: {
type: 'SmileOutlined',
size: 20,
rotate: 0,
spin: false,
},
},
],
},
},
},
{
title: '高级配置',
display: 'block',
type: 'group',
items: [
{
name: 'test',
setter: [
{
componentName: 'SelectSetter',
props: {
options: [
{
label: 'A',
value: 'A',
},
{
label: 'B',
value: 'B',
},
{
label: 'C',
value: 'C',
},
{
label: 'D',
value: 'D',
},
],
},
},
],
},
],
},
{
title: 'A的配置',
display: 'accordion',
name: 'A_name',
setter: 'StringSetter',
condition: (target) => {
return target.parent.getPropValue('test') === 'A';
},
},
{
title: 'B的配置',
display: 'accordion',
name: 'B_name',
setter: 'StringSetter',
condition: (target) => {
return target.parent.getPropValue('test') === 'B';
},
},
],
},
},
// todo 添加如下配置能解决联动失效问题, 但是上面配置有用到defaultValue的,这里都需要处理,否则联动还是无效
initialValue: () => {
return {
issue: true,
content: '默认值111。。。',
icon: false,
// test: 'A',
};
},
},
},
},
},
],
supports: {
},
component: {
},
},
```
---

## **To Reproduce (required)** / **如何复现 bug?(必填,非常重要)**

![image](https://github.com/alibaba/lowcode-engine/assets/7719710/e1930a63-0a01-4173-8519-7b978436adbb)

Steps to reproduce the behavior: / 详细复现步骤:

---

English version example:
1. Go to '...'
2. Click on '....'
3. Scroll down to '....'
4. See error

中文版示例:
1. 打开 [demo](http://lowcode-engine.cn/demo);
2. 点击标题;
3. 在右侧修改标题内容为「修改后的标题」;
4. 渲染画布标题组件没有更新显示为「修改后的标题」;

## **Expected behavior (required)** / **预期行为(必填,非常重要)**
A clear and concise description of what did you expect to happen. / 请清晰和精确的描述你预期的行为

---

## **Screenshots (optional)** / **bug 截图(可选)**
Sceenshots for further information. (If applicable.) / 一些有用的截图将会帮助我们更好的明确以及定位问题

---

## **Environments (please complete the following information) (required):** / **请提供如下信息(必填)**
- AliLowCodeEngine version: [e.g. 1.0.0] / 低代码引擎版本 - v1.1.10
- AliLowCodeEngineExt version: [e.g. 1.0.0] / 低代码引擎扩展包版本 - v1.0.6-beta.28
- Browser [e.g. chrome, safari] / 浏览器版本 - 116.0.5845.96(正式版本) (x86_64)
- materials / plugins / tools / 其他物料 / 插件 / 工具链版本

> (this information can be collected via [the manual plugin](https://img.alicdn.com/imgextra/i1/O1CN0115zonY1IsgbkZ2ir7_!!6000000000949-2-tps-3066-1650.png) / 版本信息可[通过低代码用户手册插件收集](https://img.alicdn.com/imgextra/i1/O1CN0115zonY1IsgbkZ2ir7_!!6000000000949-2-tps-3066-1650.png))

## **Additional context (optional)** / **更多额外信息(可选)**
Any other context of the problem here. / 可以追加更多的额外信息,帮助定位问题

Contributor guide

No contributing guide indexed for this repository

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.