gpt4 book ai didi

javascript - React Router Dom,使用 useNavigate 将数据传递给组件

转载 作者:行者123 更新时间:2023-12-05 01:52:54 24 4
gpt4 key购买 nike

我正在使用 useNavigate 转到组件,并且需要在单击按钮时将数据(状态)传递给此 ChatRoom 组件。该组件位于路径 /chatroom 上。我正在使用 React Router Dom v6。我已阅读文档,但找不到我要查找的内容。

export default function Home() {
const [username, setUsername] = useState("");
const [room, setRoom] = useState("");

const navigate = useNavigate();

const handleClick = () => {
navigate("/chatroom");
};

return (<button
type="submit"
className="btn"
onClick={() => {
handleClick();
}}
>
Join Chat
</button>
)}

最佳答案

你可以像这样将数据传递给 React Router Dom v6 中对应于 /chatroom 的组件:

navigate('/chatroom', { state: "Hello World!" });

并在 useLocation 的帮助下使用它以这种方式 Hook :

import { useLocation } from "react-router-dom";
function ChatRoom() {
const { state } = useLocation();
return (
<div>
{state}
</div>
);
}
export default Chatroom;

如果你想传递多个值,使用一个对象,像这样:

navigate('/chatroom', { state: {id:1, text: "Hello World!"} });

然后用 useLocation 再次消费它以这种方式 Hook :

import { useLocation } from "react-router-dom";
function ChatRoom() {
const { state } = useLocation();
return (
<div>
id: {state.id}
text: {state.text}
</div>
);
}
export default Chatroom;

关于javascript - React Router Dom,使用 useNavigate 将数据传递给组件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/71380596/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com