baidu / amis

前端低代码框架,通过 JSON 配置就能生成各种页面。
https://baidu.github.io/amis/
Apache License 2.0
17.41k stars 2.52k forks source link

crud2中this.control为undefined,和Table2异步加载有关 #11167

Open 52flutter opened 2 weeks ago

52flutter commented 2 weeks ago

描述问题:

请用一段清晰简洁的文字描述问题是什么... SDK下crud2中this.control为null,npm包不会,怀疑sdk下其他的类似用法一样有此问题

截图或视频:

可以的话,尽可能提供截图或视频来补充描述你的问题... img_v3_02gc_a0ce35eb-3692-4934-8140-0a4081bc752g

如何复现(请务必完整填写下面内容):

  1. 你是如何使用 amis 的? sdknpm其他... sdk

  2. amis 版本是什么?请先在最新 beta 版本测试问题是否存在 最新

  3. 粘贴有问题的完整 amis schema 代码:

    code here...
  4. 操作步骤 请简单描述一下复现的操作步骤...

52flutter commented 2 weeks ago

调试了下代码,第一次加载会出现,感觉SchemaRender应该把异步renderer先加载了在渲染

52flutter commented 2 weeks ago

image 这里会导致ref混乱 @2betop

2betop commented 1 week ago

有没有问题 schema 呢?或者说怎么验证这个问题呢?issue内容中的图片裂了看不了

52flutter commented 1 week ago

有没有问题 schema 呢?或者说怎么验证这个问题呢?issue内容中的图片裂了看不了

渲染器中随便弄个crud2的schema 然后断点 获取 this.control

52flutter commented 1 week ago

editor中预览重现不了 渲染器中可以

52flutter commented 1 week ago

这里的问题 this.reRender()给了一个正确的ref,return null 又把ref置成了null 这个写法也很奇怪 https://github.com/baidu/amis/blob/539074e395c48aeacc92e35bf855a62f94986595/packages/amis-core/src/SchemaRenderer.tsx#L507