Как перенаправить на другую страницу, если пользователь не входит в эту команду в nextjs

#javascript #reactjs

Вопрос:

Я пытаюсь создать функцию, которая сделает пользователя, пытающегося попасть на страницу команды, когда он не в этой команде.

Вот мой следующий код:

   const [user, setUser] = useState({});

  const fetchCurrentUser = () => {
    axios
      .get(`/api/v1/profiles/profile/${serverUserData.publicId}`)
      .then((res) => {
        setUser(res.data);
        if (
          res.data.Teams.length <= 0
          // ||
          // res.data.Teams.map((team) => team.public_team_id !== teamProfileId)
        ) {
          router.push("/profile");
        }
      })
      .catch((err) => {
        throw new Error(err);
      });
  };
 

Поэтому я пытаюсь достичь res.data.Teams.map((team) => team.public_team_id !== teamProfileId

пример: если у этого пользователя есть 3-4 команды, но не эта команда, поэтому они не могут попасть на эту страницу команды

Ответ №1:

Все, что вам нужно сделать, это проверить, есть ли Teams team совпадение teamProfileId , а затем разрешить им доступ, если нет.

Вы можете проверить это с помощью метода Array.some ().

 if (res.data.Teams.some(team => team.public_team_id !== teamProfileId)) {
  router.push("/profile");
}
 

Он вернется true , если условие пройдет, то есть не будет совпадения teamProfileId ; иначе вернется false .