刘嘉昕 | 9cdeca2 | 2025-06-03 16:54:30 +0800 | [diff] [blame^] | 1 | // src/components/ActivityPreview.jsx |
| 2 | import React, { useEffect, useState } from 'react'; |
| 3 | import { getActivityPreviews } from '../api/activity'; |
| 4 | |
| 5 | const ActivityPreview = () => { |
| 6 | const [activities, setActivities] = useState([]); |
| 7 | |
| 8 | useEffect(() => { |
| 9 | getActivityPreviews() |
| 10 | .then(res => setActivities(res.data)) |
| 11 | .catch(err => console.error('获取活动预览失败:', err)); |
| 12 | }, []); |
| 13 | |
| 14 | return ( |
| 15 | <div> |
| 16 | <h2>活动预览</h2> |
| 17 | <div style={{ display: 'flex', flexWrap: 'wrap', gap: '16px' }}> |
| 18 | {activities.map(activity => ( |
| 19 | <div key={activity.activityid} style={{ border: '1px solid #ccc', padding: '12px', borderRadius: '8px' }}> |
| 20 | <h3>{activity.title}</h3> |
| 21 | <img |
| 22 | src={activity.photo} |
| 23 | alt={activity.title} |
| 24 | style={{ width: '200px', height: 'auto', borderRadius: '4px' }} |
| 25 | /> |
| 26 | </div> |
| 27 | ))} |
| 28 | </div> |
| 29 | </div> |
| 30 | ); |
| 31 | }; |
| 32 | |
| 33 | export default ActivityPreview; |