skip to Main Content
useEffect(() => {
        if(currentUser){
            currentUser?.friends.map(friends => {
                if(friends._id===currentProfile._id){
                    return setFriend(true)
                }
            })
        }else{
            return setFriend(false)
        }
    },[currentUser,currentProfile])

//currentUser is the user logged in
//currentProfile is user selected

i want to show button as Unfriend if the user selected is already a friend.Iam trying to use a map function to find if the user is already a friend.but the map function is shown as error

2

Answers


  1. Looks to me like currentUser is defined but doesn’t have a property currrentUser.friends.
    Try currentUser?.friends?.map(...)

    And change the else clause to always return instead. If return setFriend(true) was called, the return friend(false) won’t be called, but in all other cases.

    Login or Signup to reply.
  2. Since you have the if statement we already know that currentUser exists you will have to see if the currentUser have friends.
    However map should be used to create a new array, you use it to iterate over friends. You could simplify the whole useEffect with some instead

    useEffect(() => {
      setFriend(
        currentUser &&
          currentUser.friends?.some((friends) => friends._id === currentProfile._id)
      );
    }, [currentUser, currentProfile]);
    
    

    If currentUser is a value and a friend have the same id as currentProfile

    Login or Signup to reply.
Please signup or login to give your own answer.
Back To Top
Search