如何解决 React 中组件传递方法链路很长的问题?

2021-07-14 15:16:26 +08:00
 xrr2016

一个组件 A 的方法通过 props 传递到组件 B 然后到组件 C 再到 D 再到 E...

这样的写法找起来真是痛苦啊,所以如何解决这种问题呢?

网上搜了一圈没找到方案,所以来问下哈哈哈

3030 次点击
所在节点    React
31 条回复
Puteulanus
2021-07-14 15:26:01 +08:00
用 context ?
P233
2021-07-14 15:27:17 +08:00
context
fengfuliu
2021-07-14 15:28:53 +08:00
context 或者状态管理库
qingzhan
2021-07-14 15:30:04 +08:00
试试这个? /t/786936
HALOZ
2021-07-14 15:53:43 +08:00
方法很多,context 、redux 、发布-订阅模式、甚至 session
gxm44
2021-07-14 16:04:01 +08:00
state management or context
zhuweiyou
2021-07-14 16:05:34 +08:00
状态管理 或 pub-sub
Leviathann
2021-07-14 16:15:48 +08:00
我试过 context,可以解决
然后 review 不给过,说 context 不好控制。。
xrr2016
2021-07-14 16:32:21 +08:00
好的,试试 context
KuroNekoFan
2021-07-14 16:33:11 +08:00
context 挺好的
Cuo
2021-07-14 16:44:55 +08:00
Redux
newbieRenew
2021-07-14 16:51:47 +08:00
直接 Redux 了,全局更新,不用管传来传去。
xrr2016
2021-07-14 17:04:19 +08:00
@Leviathann 为啥不好控制?
xwchenhui
2021-07-14 17:12:46 +08:00
@HALOZ #5 session 还行,走位风骚
Imindzzz
2021-07-14 17:33:59 +08:00
你需要一个状态管理插件,以前我用 redux mobx 。
react 16 推出 hooks 后我使用 https://github.com/jamiebuilds/unstated-next/blob/master/README-zh-cn.md

readme 的指南部分,有介绍这个库的设计思路,就是用简单封装一下 react 的 context api
musi
2021-07-14 17:50:36 +08:00
window (狗头)
shakukansp
2021-07-14 18:31:08 +08:00
let fn = () => {}

const useYourFN = () => {
const [localFn, setLocalFn] = useState(fn)

return {
localFn,
setLocalFn
}
}
shakukansp
2021-07-14 18:32:52 +08:00
@shakukansp 漏了 setLocalFn 外面再套一层设置外部 fn 的方法再 return
susumail
2021-07-14 18:39:29 +08:00
context
JerryCha
2021-07-14 19:46:35 +08:00
建议 redux,context 有重渲染的坑

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/789488

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX