ShopOne / Shitforces

くそなぞなぞコンテストサイト
shitforces.vercel.app
MIT License
27 stars 13 forks source link

他人のアカウントページから自分のアカウントページに移っても他人の参加履歴が表示される #244

Closed Udomomo closed 3 years ago

Udomomo commented 3 years ago

再現条件

ShopOne commented 3 years ago

状況再現出来ました。 ご報告ありがとうございます。

no-yan commented 3 years ago

報告ありがとうございます。

おそらくAccountPage関数のuseEffectが意図と異なる挙動をしてしまっているのが直接の原因だと思います。

  const getAccount = useCallback(async() => {
    const accountData = await getAccountInformation(getAccountName())
    // update user info
  }, []);

  useEffect(() => {
    getAccount();
  }, [getAccountName()]);

想定する挙動:getAccountNameがユーザー名の変更時にgetAccountを実行し、ユーザー情報を更新すること 実際の挙動:getAccount内においてuseCallbackの第2引数(依存配列)が空配列であるため、getAccountは初回の値のまま再実行される

第2引数にwindow.location.hrefなどを入れれば解決すると思います。

no-yan commented 3 years ago

時間とれそうなので自分で修正します!