• 카테고리

    질문 & 답변
  • 세부 분야

    풀스택

  • 해결 여부

    미해결

favorite list에서 삭제

21.01.14 00:59 작성 조회수 153

0

안녕하세요 선생님!

제가 선생님이 하신 Axios.post 이런 부분을 전부 다 redux로 하도록 바꾸었는데 그 중에서 favorite page에서 삭제 버튼을 눌렀을 때만 onClick 이벤트로 삭제가 되어야하는데 favorite page에 접속하면 잠깐동안 항목에 리스트가 보였다가 다 자동으로 삭제가 되는 문제가 있어서 질문드려요!

콘솔로 찍어보니까 데이터는 전달되었는데 제가 버튼을 누르지않았는데도 onClickFavorite 이라고 제가 정의한 함수가 실행되고 있더라구요. 혹시 어디가 틀렸는지 가르쳐주실 수 있으실까요??

import React, { useEffectuseState } from 'react'
import './favorite.css';
import { useDispatch } from 'react-redux';
import { getFavoriteremoveFavorite } from '../../../_actions/user_action';
import { Popover } from 'antd';
import { IMAGE_BASE_URL } from '../../../Config';

function FavoritePage() {

    const dispatch = useDispatch();
    const [FavoritessetFavorites] = useState([])

    useEffect(() => {
        
        console.log('useeffect')
        dispatchFavoriteMovies()
        
    }, [])

    const dispatchFavoriteMovies = () => {
        dispatch(getFavorite({userFrom: localStorage.getItem('userId')}))
            .then(response => {
                if(response.payload.success){
                    console.log('dispatchfavoritemoviesresponse.payload',response.payload)
                    setFavorites(response.payload.favorites)
                }else{
                    alert('영화 정보를 가져오는데 실패')
                }
            })
    }

    const onClickDelete = (movieIduserFrom=> {

        const variables = {
            movieId,
            userFrom
        }
    
        dispatch(removeFavorite(variables))
            .then(response => {
                if(response.payload.success){
                    dispatchFavoriteMovies()
                    console.log('onclickdeleteresponse.payload',response.payload)
                }else{
                    alert('좋아요 취소 실패')
                }
            })
    
       
    }
    

    const renderCards = Favorites.map((favoriteindex=> {
        const content = (
            <div>
                {favorite.moviePost ? 
                    <img src={`${IMAGE_BASE_URL}w500${favorite.moviePost}`} /> : "no image"
                }
            </div>
        )
        return <tr key={index}>

            <Popover content={content} title={`${favorite.movieTitle}`}>
                <td>{favorite.movieTitle}</td>
            </Popover>
                <td>{favorite.movieRunTime} mins</td>
                <td><button onClick={onClickDelete(favorite.movieIdfavorite.userFrom)}>Remove</button></td>
            
        </tr>
    })


    
    

    return (
        <div style={width: '85%'margin: '3rem auto' }}>
            <h2>Favorite Movies</h2>
            <hr />
            <table>
                <thead>
                    <tr>
                        <th>Movie Title</th>
                        <th>Movie RunTime</th>
                        <th>Remove from favorites</th>
                    </tr>
                </thead>
                <tbody>
                    {renderCards}
                
                </tbody>
            </table>
            
        </div>
    )
}

export default FavoritePage

답변 0

답변을 작성해보세요.

답변을 기다리고 있는 질문이에요.
첫번째 답변을 남겨보세요!