[英]To pass values into useNavigate() react-router-dom and use it in the redirected component
[英]React Router Dom, pass data to a component with useNavigate
我正在使用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
鈎子的幫助下使用它:
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!"} });
正如您可以在此CodeSandbox上嘗試的那樣,它僅在傳遞的數據稱為state
時才有效。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.