Reactjs 无法从react路由器dom访问useLocation功能组件中的状态
我试图访问一个状态属性,我正在通过NavLink进入一个组件,但我无法让它工作。我读到它就像使用useLocation访问状态一样简单,但我认为typescript不喜欢这样 以下代码:Reactjs 无法从react路由器dom访问useLocation功能组件中的状态,reactjs,typescript,react-router,Reactjs,Typescript,React Router,我试图访问一个状态属性,我正在通过NavLink进入一个组件,但我无法让它工作。我读到它就像使用useLocation访问状态一样简单,但我认为typescript不喜欢这样 以下代码: import React from "react"; import "./project.css"; import Toolbar from "../navigation/toolbar"; import Footer from "../fo
import React from "react";
import "./project.css";
import Toolbar from "../navigation/toolbar";
import Footer from "../footer/footer";
import projects from "../projectsSection/projects";
import { useLocation } from "react-router-dom";
interface ProjectProps {
projectId: number;
}
const Project: React.FC = (props) => {
const { state } = useLocation();
const { projectId } = state;
const project = projects.find((project) => project.id === projectId);
return (
<section className="project-main">
<Toolbar />
<div></div>
<Footer />
</section>
);
};
export default Project;
从“React”导入React;
导入“/project.css”;
从“./导航/工具栏”导入工具栏;
从“./Footer/Footer”导入页脚;
从“./projects节/projects”导入项目;
从“react router dom”导入{useLocation};
界面项目道具{
projectd:数字;
}
const项目:React.FC=(道具)=>{
const{state}=useLocation();
const{projectd}=状态;
const project=projects.find((project)=>project.id==projectId);
返回(
);
};
导出默认项目;
知道我如何在类似的设置中访问状态吗?我收到一个错误,该错误表示:类型“unknown”上不存在属性“projectId”您需要将泛型类型添加到
useLocation
:
const { state } = useLocation<{projectId: string}>();
const{state}=useLocation();
我认为您需要在useLocation
hook中添加一个泛型类型,让TS知道您使用的是哪种类型。谢谢您的帮助!