mio*_*uri 9 javascript reactjs react-router-dom
我用来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>
);
}
Run Code Online (Sandbox Code Playgroud)
You*_*mar 16
/chatroom
您可以将数据传递到React Router Dom 中对应的组件,v6
如下所示:
navigate('/chatroom', { state: "Hello World!" });
Run Code Online (Sandbox Code Playgroud)
并在 hook 的帮助下使用它useLocation
:
import { useLocation } from "react-router-dom";
function ChatRoom() {
const { state } = useLocation();
return (
<div>
{state}
</div>
);
}
export default Chatroom;
Run Code Online (Sandbox Code Playgroud)
如果你想传递多个值,请使用一个对象,如下所示:
navigate('/chatroom', { state: {id:1, text: "Hello World!"} });
Run Code Online (Sandbox Code Playgroud)
然后用 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;
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
7367 次 |
最近记录: |