【发布时间】:2021-10-04 15:37:25
【问题描述】:
这是我的代码,我使用 Map 来渲染假期卡片,我需要添加关注和取消关注功能。我希望它在我按下“关注”后更改,仅在一张卡上将其更改为“取消关注”。 如果有人可以帮助我,将不胜感激。
export default function Vacations(){
const [vacationsArray, setVacationsArray] = useState<IVacation[]>([]);
const userDetails = useSelector((state: AppState) => state.userDetailes);
useEffect(() => {
axios.get("http://localhost:3001/vacations/")
.then(data => {
setVacationsArray(data.data)
console.log(data.data)
}).catch(e =>{
console.log("failed to fetch data" + e)
})
},[]);
const onUnfollowClicked = async()=>{
console.log("Unfollowed")
}
const onFollowClicked = async (vacationId:any) =>{
let userId = userDetails[0].id;
await axios.post(`http://localhost:3001/followedVacations/${vacationId}`, {vacationId, userId});
}
return(
<div className="vacationsContainer">
{vacationsArray.map((vacation:any, key:number) =>(
<div key={key} className="vacation">
<button onClick={()=>onFollowClicked(vacation.id)}>Follow</button>
<button onClick={()=>onUnfollowClicked}>Unfollow</button>
<h1>{vacation.destination}</h1> <br></br>
<img width="300px" height="300px" src={vacation.image} alt="" /> <br></br>
<h3>Description: <span>{vacation.description}</span></h3> <br></br>
<h3>Price: <span>{vacation.price}$</span></h3> <br></br>
<h3>From: <span>{vacation.startDate}</span></h3> <br></br>
<h3>To: <span>{vacation.endDate}</span></h3>
</div>
))}
</div>
)
}
【问题讨论】:
标签: reactjs react-redux react-hooks react-tsx