ReactComponentの外側からReactHooksのContextを使用したい
ReactHooksで実装している途中で、やり方が分からずつまずいてしまったので助けていただきたいです。
- PageA,PageBでDBから取得したユーザーの情報を表示したい
- DBの取得ロジックはPageA,Bで全く同じ
- AB両方に重複したロジックを持ちたくないので、その部分をReactコンポーネントから切り離して管理したい。
実現したいのは上記の動きです。イメージを作りました。
UIのレンダリングを伴わない、UserDataController.js
でContextの値を得たり更新する方法は無いでしょうか?
サンプルコード
PageA.js & PageB.js
js
1import React from 'react' 2import {Context} from './Provider' 3import {UserDataController} from './UserDataController' 4 5export const PageA = () => { 6 const [context, setContext] = React.useContext(Context) 7 8 React.useEffect(() => { 9 const user = new UserDataController() 10 user.getUser() 11 }, []) 12 13 return ( 14 <h1>{context.username}</h1> 15 ) 16} 17
UserDataController.js
(クラスで定義してますが、共通化が実現できるのであれば型は問いません)
js
1import React from 'react' 2 3export class UserDataController { 4 getUser(uid) { 5 // データベースから情報を取得する処理 6 // 取得した内容をもとにContextの値を変更したい(このやり方がわからない) 7 } 8}
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2021/07/16 08:05