findreamer

Results 5 comments of findreamer

问题1:`params`没有更新的原因是,这里url发生变化,当发现匹配的是相同的页面时,直接就退出了,没有更新到`params`参数,这里能否提交一个PR处理一下。 [packages/amis-core/src/store/app.ts](https://github.com/baidu/amis/blob/d9ace501e3ad0f1ec99ec5bf7f932a6448db0929/packages/amis-core/src/store/app.ts#L147) 问题2:`query`未获取到的原因是,App 组件的父组件高阶组件HocStoreFactory 在 componentDidUpdate生命周期中有更新 IRenderer.data 逻辑(更新`query`数据),react组件的 componentDidUpdate 执行顺序是子组件 > 父组件,也就是说 `location`发生变化时,App组件会先执行render函数,但是从`store.PageData`中获取到的数据仍未更新。

@cic1988 呃,你这个示例代码不是单页应用啊,只是应用了Page组件,单页应用应该使用App组件(amis官网-组件- App),可参考源码示例:https://github.com/baidu/amis/blob/master/examples/app/index-vite.html,

> > 表单提交数据配置方法很多,以下是个人建议: 1、自定义api.data[配置表单数据](https://aisuda.bce.baidu.com/amis/zh-CN/docs/types/api#%E9%85%8D%E7%BD%AE%E8%AF%B7%E6%B1%82%E6%95%B0%E6%8D%AE)。 2、配置api对象的[requestAdaptor](https://aisuda.bce.baidu.com/amis/zh-CN/docs/types/api#%E9%85%8D%E7%BD%AE%E8%AF%B7%E6%B1%82%E6%95%B0%E6%8D%AE),对表单提交的数据进行拦截处理。 3、对于业务比较复杂的情况,建议使用多个形式表单,根据visibleOn动态的显示对应的表单,每个表单的字段根据业务类型一一对应,这种方式比较好维护。 > > 没一个建议是直接解决的,意思就是接口返回一大堆数据,请求的时候全部跟着请求出去,现在是我需要限制,不提交接口返回的数据 怀疑你没有真的实践就得出结论,总之你说没用就没用吧。

> 没搞懂是啥意思,切页面是会重新请求接口的,怎么展示跟接口返回有关呢 这个点问题跟切换分页接口返回没关系,主要是切换分页后,去操作switch组件,弹窗里面出现的id和table列表中的id不匹配,这个问题我们在生产上也遇到了。我再详细的描述一下bug的复现步骤: 1. [进入官网](https://aisuda.bce.baidu.com/amis/zh-CN/components/form/switch#change),这个一个在CRUD组件中使用switch组件的用例,直接进入第二页、选择第一条数据,点击switch组件进行修改,此时弹窗出现“确定要修改11吗?”提示文案,符合预期,点击确认完成修改。 2. 修改完成后,然后切换页码进入第一页,然后选择第6行(非第一行)数据,点击switch组件进行修改,此时弹窗出现“确定要修改16吗?”,这里我选择的是第一页第6行,table中ID列显示的id为6,dialog弹窗中显示的id应该为6才对,而不是16。 3. 然后再切换到除了第一页的其他页,点击switch组件,发现弹窗显示的id和table列表中的ID列不匹配。 我们在实际运用场景是在switch 的change事件中发送api接口,但是获取不到table真实的rowData.id,而产生bug

我使用的是6.3版本,用amis-editor做了个页面设计器,经常要来回切换配置多个页面,最近升级了chrome浏览器,崩溃次数变得很频繁了。 如果页面配置比较复杂,比如table、crud、form、service组件比较多的情况,每更改一次schema,editor就更新视图,通过浏览器内存面板看,每次视图刷新都会存在内存泄漏。