alibaba / alibaba/lowcode-engine

如何正确实现props属性值与setter value的联动

Open
#1,345 3 comments 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

## 我想实现listSetter的value跟另一个props属性值联动

例如 listSetter 的 value 根据 props.setting的值来重新生成数组

## 目前代码是这么写的

```
{
if (ref) {
const settings = this.getProps().getPropValue('settingId');
const columns = this.getProps().getPropValue('columns');

if (settings) {
const { tableRules } = settings; // 列字段配置

// 检查是否有变化
if (!isTableRulesChange(columns, tableRules)) {
return;
}

const options = mergeColumns(columns, tableRules); // 将列字段配置 和 列其他配置 合并

ref.list.prop.setHotValue(options);
ref.list.updateItems(ref.list.prop);
ref.forceUpdate();
}
}
}}
descriptor={getDescriptor('title')}
checkField={null}
addable={false}
deletable={false}
draggable={false}
editable
display="drawer"
configure={[
{
name: 'id',
title: 'ID',
display: 'none',
editable: false,
setter: ,
},
{
name: 'title',
title: '标题',
display: 'inline',
initialValue: '',
editable: false,
setter: ,
},
{
name: 'dataKey',
title: '数据字段',
display: 'inline',
initialValue: '',
editable: false,
setter: ,
},
{
name: 'width',
title: '宽度',
display: 'inline',
initialValue: 200,
setter: (

),
supportVariable: true,
},
{
name: 'align',
title: '对齐方式',
display: 'inline',
initialValue: 'left',
setter: (

),
supportVariable: true,
},
{
name: 'lock',
title: '列固定',
display: 'inline',
initialValue: 'none',
setter: (

),
supportVariable: true,
},
{
name: 'sortable',
title: '显示排序',
display: 'inline',
initialValue: false,
setter: ,
supportVariable: true,
},
{
name: 'hidden',
title: '是否隐藏',
display: 'inline',
initialValue: false,
setter: ,
supportVariable: true,
},
{
name: 'groupName',
title: '分组标题',
display: 'inline',
initialValue: '',
setter: ,
supportVariable: true,
},
{
name: 'render',
title: '内容定制渲染',
display: 'accordion',
setter: (
{value};
}`}
defaultActionName="renderCell"
/>
),
},
]}
/>

```

## **Expected behavior (required)** / **预期行为(必填,非常重要)**
在settingId中的tableRules变化时,listSetter的value也可以实时变化

## **Screenshots (optional)** / **bug 截图(可选)**
但现在的现象是偶尔会变化,不是每一次listSetter都会重新渲染

## **Environments (please complete the following information) (required):** / **请提供如下信息(必填)**
- AliLowCodeEngine version: 1.0.71,使用vdev 6.5.1
- AliLowCodeEngine ext : 1.0.7
- Browser:chrome

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.