实现场景:
如上图所示我们自己注册了表单组件,期望“数据源选择”修改后,能给下方的搜索字段选择赋值
翻了一下amis的源代码,发现了onChange事件能够满足yao要求
但是我们尝试了一下,事件不能触发,请问这个方法使用有别的代码需要配置吗
ae-datasource是自定义的表单项类型组件,用@FormItem注册的
setSchemaTpl('dataSource', (patch: any = {}) => {
console.log('patch', patch)
return {
type: 'ae-datasource',
// label: '数据源选择',
// name: name || 'api',
...patch,
};
});
getSchemaTpl('dataSource', {
id: context.schema.id,
name: 'dataSource',
showRequired: false,
updateSchema: context.node.updateSchema,
schema: context.node.schema,
useType: 'table',
// eslint-disable-next-line max-params
onChange: (
value: string,
oldValue: any,
model: any,
form: any
) => {
// 没有任何日志打印
console.log('0000000', value, oldValue,model, form)
}
}),
5条答案
按热度按时间b1payxdu1#
@zhaoyinger623 事件不能触发,是指 onChange 没有正常执行吗?
jrcvhitl2#
@zhaoyinger623 最好能贴一下 ae-datasource 的完整代码。
gt0wga4j3#
是的,onChange没有执行,是不是updateSchema和onChange冲突了
wqsoz72f4#
@zhaoyinger623 看代码没看出什么原因来,方便的话,发一下完整代码的zip包或者demo 仓库地址,我们定位下。
fsi0uk1n5#
我这边定位到的问题就是updateSchema和onChange同时使用的问题,我把updateSchema注释掉就可以触发了