発生している問題・エラーメッセージ
React.jsでContext Apiを使用しております。
Providerで囲んだ子コンポーネントのuseEffectが実行されず困っています。
原因や解決法をご教授願えませんでしょうか?
以下該当のソースコードです。
子コンポーネントである<Boards>のuseEffectが一度も実行されません。
useEffectの第二引数が無しの場合、空配列の場合のどちらもだめでした。
画面にboardsの文字は表示されているのでレンダリングはされていると思います。
該当のソースコード
Home.js
export default function Home({ children }) { return ( <Router> <NotificationProvider> <Notification /> {children} <Route path="/board/" exact><Boards /></Route> </NotificationProvider> </Router > ); }
NotificationProvider.js
const NotificationContext = createContext({ notification: "", setNotification: () => { }, }) const NotificationProvider = ({ children }) => { const [notification, setNotification] = useState(0) return <NotificationContext.Provider value={{ notification, setNotification }}> {children} </NotificationContext.Provider> } const useNotificationContext = () => useContext(NotificationContext) export { NotificationProvider, useNotificationContext, colorModes }
Notification.js
export default function Notification() { const { notification, setNotification } = useNotificationContext(); return ( <div className="notification"> {notification} </div > ); }
Boards.js
export default function Boards(props) { useEffect(() => { console.log("test1") }, []) useEffect(() => { console.log("test2") }) return ( <div> boards</div > ) }
試したこと
Home.jsにおいて
・<NotificationProvider>でラップするのをやめる
→だめでした。
・<Notification>をコメントアウト
→console.logが実行されました
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。