Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

fix: 修复select组件change事件的选中数据问题 #11437

Open
wants to merge 1 commit into
base: master
Choose a base branch
from
Open
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 3 additions & 1 deletion packages/amis/src/renderers/Form/Transfer.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -261,6 +261,7 @@ export class BaseTransferRenderer<
} = this.props;
let newValue: any = value;
let newOptions = options.concat();
let selectedItems = value;

if (Array.isArray(value)) {
newValue = value.map(item => {
Expand Down Expand Up @@ -347,7 +348,8 @@ export class BaseTransferRenderer<
resolveEventData(this.props, {
value: newValue,
options,
items: options // 为了保持名字统一
items: options, // 为了保持名字统一
selectedItems
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

建议改成 props.selectedOptions 因为 value 可能是各种格式的值,比如逗号分隔的字符串

Copy link
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

props.selectedOptions 中的数据并非预期的本次 change 事件已选中的选项数据,而是上一次选中的数据,由于对项目不是非常熟悉,猜测这里 table 等模式是由 transfer 组件触发渲染器事件,而非 select 组件本身,触发了渲染器事件后才调用的 onChange,所以此时的 props.selectedOptions 还未更新。
至于 value,我看了下逗号分割的字符串也是后续代码去处理的,原始的 props.value 并非逗号分割的字符串
您可以再确认下

})
);
if (rendererEvent?.prevented) {
Expand Down
Loading