面试题答案
一键面试在React Router中,当userId
参数发生变化时,组件可以通过useParams
钩子函数来获取新的userId
并更新数据。以下是代码示例:
import React, { useEffect } from'react';
import { useParams } from'react-router-dom';
const User = () => {
const { userId } = useParams();
useEffect(() => {
// 在这里根据新的userId获取数据
const fetchData = async () => {
// 模拟获取数据的异步操作
const response = await fetch(`https://example.com/api/users/${userId}`);
const data = await response.json();
console.log(data);
};
fetchData();
}, [userId]);
return (
<div>
<p>User ID: {userId}</p>
</div>
);
};
export default User;
在上述代码中:
- 通过
useParams
钩子获取userId
。 - 使用
useEffect
钩子,当userId
变化时,触发副作用函数来获取新的数据。useEffect
的依赖数组为[userId]
,这样每当userId
变化时,useEffect
内的代码就会重新执行。