uncaught Invariant Violation: Rendered more hooks than during the previous render.
上記のエラーが出てたので調べたら条件分岐のとこでuseReduserを使っているのが原因でした。
useTrの処理の中でuseReduserを使っています。
if (category()) { );の条件分岐をなくしてuseTr()の中で三項演算子を使い条件分岐をしたのですが return useTr( category() ? Params(category().useId): null, { Token: null }, [category().useId], ); return initialState;
と書いてもuseTrの処理が絶対呼ばれてしいます。どういうふうに書いたらcategory()がfalseの時にinisialStateを返してtruの時はuseTrを呼ぶことができますか?
const category = (): Users | null => { const ttg = category.find((i) => i.categoryId === category.id); return (ttg != null) ? ttg : null; }; const Params = (userId: number) => Object.assign({}, params, { userId }); if (category()) { return useTr( Params(category().useId), { Token: null }, [category().useId], ); } return initialState;
回答1件
あなたの回答
tips
プレビュー