父向子传可以用 useOutletContext ,但是子向父传就无法通过 useOutletContext 了
有什么办法做到<Ooulet />里的子组件给父组件传参?
需求是父组件需要响应<Ooulet />子组传递过来的数据
1
ahwwh1994 2022-03-16 16:28:42 +08:00 1
传函数过去啊,和 props 一样的啊
|
3
liuzhaowei55 2022-03-16 16:38:40 +08:00 via iPhone
父组件用 useState 定义,然后把 state setState 都传下去,子组件 setState 就可以了
|
4
liuzhaowei55 2022-03-16 16:39:39 +08:00 via iPhone
@Chism 用中括号把 state setState 放一起往下传
|
5
Chism OP |
6
agdhole 2022-03-16 16:48:11 +08:00
用个状态管理库也可以,比如 recoil
|
7
ahwwh1994 2022-03-16 16:57:56 +08:00 2
|
10
KalaSearch 2022-03-23 13:06:05 +08:00
可以尝试:
``` type AuthUserContextType = { authedUser: UserResponse; }; const useAuthUserContext = (): AuthUserContextType => { return useOutletContext<AuthUserContextType>(); }; // 然后在你的组件中: const ctx: AuthUserContextType = { authedUser: YOUR_DATA, }; return <Outlet context={ctx} />; ``` |
11
KalaSearch 2022-03-23 13:06:43 +08:00
oops... 抱歉没整理好格式
这个问题上周刚碰到,你感兴趣的话我可以写篇博客说一下 |
12
Chism OP @KalaSearch
我按照 1 楼的方法也成功了。。 |