Reactjs 无法从react路由器dom访问useLocation功能组件中的状态

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

我试图访问一个状态属性,我正在通过NavLink进入一个组件,但我无法让它工作。我读到它就像使用useLocation访问状态一样简单,但我认为typescript不喜欢这样

以下代码:

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知道您使用的是哪种类型。谢谢您的帮助!