【发布时间】:2021-01-31 10:46:20
【问题描述】:
我有一个对象 - 在我的NavLink 定义的某个组件中聊天。点击ChatsElement - 这是一个链接后,我的页面转到/friends/${chat._id} url。在该 url 下是MoblieConversation 组件,我想在其中使用聊天对象,该对象应通过NavLink 以state 的形式传递。我在哪里读到了这个想法 - enter link description here
<NavLink
to={{ pathname: `/friends/${chat._id}`, state: chat }}
key={chat._id}
>
<ChatsElement chat={chat} />
</NavLink>
.
<Route path="/friends/:id" component={MobileConversation} />
但我不知道如何在链接/friends/${chat_id} 下的组件中找到这个state 道具。我试过这样的东西,但没有用:v
import React from "react";
import { useParams, RouteComponentProps } from "react-router";
import styles from "./mobileConversation.module.scss";
interface IParams {
id: string;
}
type SomeComponentProps = RouteComponentProps;
const MobileConversation: React.FC<SomeComponentProps> = ({ state }) => {
const { id } = useParams<IParams>();
const chat = location.state;
return <div>{id}</div>;
};
export default MobileConversation;
【问题讨论】:
-
您的代码没有意义。据我了解,您想将一些状态传递给您的 ChatsElement?如果是这样,只需导入您想要传递状态的组件并将状态作为道具发送到 ChatsElement 组件。 - 你也需要状态来传递状态,你的代码没有状态。
-
我还添加了
Route以便更好地理解。我有一个对象 - 在某些组件中聊天,其中定义了我的 NavLink。点击ChatsElement- 这是一个链接后,我的页面转到/friends/${chat._id}url。在该 url 下是 MoblieConversation 组件,我想在其中使用应该通过 NavLink 传递的chat对象。我在哪里读到了这个想法 - ui.dev/react-router-v4-pass-props-to-link -
我希望我现在解释得更好。
标签: javascript reactjs typescript react-router react-router-dom