比如这样的需求,有什么比较好的方式吗?刷新当前组件的方式也可以。
https://i.imgur.com/2n8dYos.png

组件都是用 antd 的 Modal 弹出来的,只要刷 Modal 就行:
https://i.imgur.com/3vP68Hr.png
举报· 318 次点击
登录 注册 站外分享
20 条回复  
rookie2luochao 小成 2024-5-14 10:47:07
看不到你的图片,组件都加上刷新是什么意思,从来没遇到过所有组件刷新,你的组件指的是业务组件,还是要包含 UI 组件,如果是组件里面的接口有联动,可以用 rxjs 构造成可观察对象,或者用 react-query 来做组件之间的接口联动

demo: https://github.com/rookie-luochao/create-vite-app-cli/tree/master/template-react-ts#%E8%B0%83%E7%94%A8%E6%8E%A5%E5%8F%A3react-query-%E6%94%AF%E6%8C%81%E8%87%AA%E5%8A%A8loading%E5%92%8C%E6%8E%A5%E5%8F%A3%E8%AF%B7%E6%B1%82%E8%81%94%E5%8A%A8
mxT52CRuqR6o5 小成 2024-5-14 10:57:53
写个能传 children 的组件
douxc 小成 2024-5-14 11:07:20
呃,modal 弹出来的时候请求一次数据?那就在 modal 显示的时候处理一下,useEffect 监听 open/close 状态,发现是显示就去获取数据
googleaccount 小成 2024-5-14 11:30:28
追求数据实时性 考虑用 websocket ?
CHTuring 小成 2024-5-14 11:35:16
1 、如果只是数据数据更新的话,每次 modal 关闭的时候销毁内部的组件就可以实现。
2 、如果是希望复用,一个高阶函数就能实现
gaogang 小成 2024-5-14 11:39:07
组件内部可变化的数据是拿不到吗?
直接用 props 传进去的话,传入的值变了的话,组件不是会就会重新渲染了吗
ZSeptember 小成 2024-5-14 11:41:20
基于 antd 的 modal 封装一个 modal ,固定给 modal 新增一个 refresh 按钮和 refresh 的 action 。

refresh 的默认行为可以是将 children 替换为一个 loading 页面,然后再重新加载 children ,就会触发 children 重新加载吧。
leroy20317 小成 2024-5-14 11:49:36
Modal.useModal() modal 提供的 hooks 上下文可以用不?
ZZITE 小成 2024-5-14 11:55:33
refresh 数据不就行了吗?你的数据是在哪一层,通过什么形式获取的?
我举个例子,假设是在 modal 内部自己通过 react-query 这种请求管理工具获取的数据,那么在刷新按钮点击时执行一次 refetch 或者 invalidateQueries ,modal 内的数据就更新了。可以通过高阶组件的形式,把所有 modal 都包裹一下,统一加上刷新按钮的功能。
123下一页
返回顶部