在React应用中,props.location
通常与React Router库一起使用,用于在组件之间传递数据。以下是通过props.location
传递数据的基础概念和相关信息:
pathname
(路径名)、search
(查询字符串)、hash
(哈希值)等属性。props.location.state
传递数据,这种方式不会显示在URL中。// 在发送页面
import { useHistory } from 'react-router-dom';
function SenderPage() {
const history = useHistory();
const sendData = () => {
const data = { name: 'John', age: 30 };
history.push(`/receiver?name=${data.name}&age=${data.age}`);
};
return (
<button onClick={sendData}>Send Data</button>
);
}
// 在接收页面
import { useLocation } from 'react-router-dom';
function ReceiverPage() {
const location = useLocation();
const queryParams = new URLSearchParams(location.search);
const name = queryParams.get('name');
const age = queryParams.get('age');
return (
<div>
<p>Name: {name}</p>
<p>Age: {age}</p>
</div>
);
}
// 在发送页面
import { useHistory } from 'react-router-dom';
function SenderPage() {
const history = useHistory();
const sendData = () => {
const data = { name: 'John', age: 30 };
history.push('/receiver', { state: data });
};
return (
<button onClick={sendData}>Send Data</button>
);
}
// 在接收页面
import { useLocation } from 'react-router-dom';
function ReceiverPage() {
const location = useLocation();
const data = location.state;
return (
<div>
<p>Name: {data.name}</p>
<p>Age: {data.age}</p>
</div>
);
}
props.location.state
,在刷新页面或直接访问URL时可能会丢失数据。解决方法是通过Query Parameters备份重要数据。通过以上方法,你可以有效地通过props.location
在不同组件之间传递数据。
领取专属 10元无门槛券
手把手带您无忧上云