import React, { useState, useEffect } from 'react';
// 子组件:接收props
function UserCard({ user, onUserClick }) {
return (
<div onClick={() => onUserClick(user.id)}>
<h3>{user.name}h3>
<p>{user.email}p>
div>
);
}
// 父组件:使用hooks管理状态
function UserList() {
const [users, setUsers] = useState([]);
const [loading, setLoading] = useState(true);
// 使用useEffect获取数据
useEffect(() => {
fetchUsers();
}, []);
const fetchUsers = async () => {
try {
const response = await fetch('https://api.example.com/users');
const data = await response.json();
setUsers(data);
} catch (error) {
console.error('获取用户失败:', error);
} finally {
setLoading(false);
}
};
const handleUserClick = (userId) => {
console.log('用户被点击:', userId);
};
if (loading) {
}
return (
{users.map(user => (
key={user.id}
user={user}
onUserClick={handleUserClick}
/>
))}
);
}