- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
使用 React 功能组件和 Typescript,使用 useHistory hook 和 RouteComponentProps (react router v5.1) 有什么区别吗?
使用 RouteComponentProps 的示例:
import { RouteComponentProps } from 'react-router-dom';
interface PropsType extends RouteComponentProps {
text: string;
}
const MyFunctionalComponent = ({
text,
history
}: PropsType) => {
};
使用 useHistory 的示例:
import { useHistory } from 'react-router-dom';
interface PropsType {
text: string;
}
const MyFunctionalComponent = ({
text
}: PropsType) => {
const history = useHistory();
};
最佳答案
我的情况完全相同,我想与您分享我的结论。
首先,两种方法的程序导航行为是相同的,因为它们都使用相同的 history
实例 ,但在使用方式上有一些不同:
history
的 RouteComponentProps
强制您使用 props 将它一直钻到组件树中。这种方法没有任何问题,但是如果您的组件树不断增长,您可能会发现自己钻研了许多组件层。useHistory
钩子(Hook)可以避免之前的 Prop 钻孔,只允许您使用history
任何功能组件中的实例。请注意 this hook is a quick stopgap for a future hook并将最终被 useNavigate
取代钩。useHistory
为长组件树 Hook 一个更清晰、更易读的解决方案,但我一直在使用
history
RouteComponentProps
的实例如果组件是接近的或者是
Route
的直接子代成分。
关于reactjs - RouteComponentProps 与 useHistory,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62290127/
使用 React 功能组件和 Typescript,使用 useHistory hook 和 RouteComponentProps (react router v5.1) 有什么区别吗? 使用 Ro
当按下主页按钮时,我想将其重定向到主页“/”。但我收到此错误。我能做什么 ? : import { Route, useHistory } from 'react-router-dom/cjs/rea
我正在使用react-router-dom和redux。我在调度后使用history.push(“/”),但它显示错误。我希望用户在成功身份验证后导航到“/”(使用 GOOGLE) exp
我正在使用react-router-dom和redux。我在调度后使用history.push(“/”),但它显示错误。我希望用户在成功身份验证后导航到“/”(使用 GOOGLE) exp
我正在做一个谷歌克隆(迷你项目),因为我需要从 react-router-dom 导入 useHistory。 我已按照以下步骤操作: 第 1 步:npm install --save react-r
我正在使用 react-router-dom v6.0.0-beta.0 和 reac-redux 7.2.2 并想通过使用 useState 钩子(Hook)来编辑状态值,但是当我单击 EditIc
您好,我正在尝试使用 this.history.push({ pathname: `/search-results`,
我正在尝试使用 usehistory Hook 将注册功能重定向到 react 主页当我运行我的代码时,它显示这样的错误:: export 'useHistory' (imported as 'use
我正在尝试使用 usehistory Hook 将注册功能重定向到 react 主页当我运行我的代码时,它显示这样的错误:: export 'useHistory' (imported as 'use
在 react-router-dom v 5.2.0 上,useHistory 的导入返回“undefined”(即使在 console.log() 中) 基本上,我正在尝试构建一个选项菜单导航栏,让
使用此代码: import { Link, useHistory } from "react-router-dom"; ... const history = useHistory(); ... hi
我已经实现了 useHistory() 与我在下面实现的相同,以前我没有收到任何错误,但在这个组件中我收到了一个错误 Line 6:18: React Hook "useHistory" is cal
我有一个包含多个应用程序和库的 monorepo,效果非常好(基于 yarn )。我最近做了一些重构,并确定了一个我想在我的“公共(public)”库中“外包”的公共(public)组件。这包含一个使
我正在制作一个类似于应用程序的 CRUD 博客,当我发布或编辑博客时,我使用 history.push() 重定向用户,但是当用户被重定向时,如果我刷新页面,信息仍然是旧的,内容被更新.在过去的一天里
我想在我的 react 应用程序中集成一个 AI 语音助手 Alan AI 所以基本上想使用语音命令重定向页面。 但问题是,我想使用 useHistory 钩子(Hook)的 push 方法来更改页面
我在React Router v5.1.2中使用TypeScript使用UseHistory钩子(Hook)?运行单元测试时,我遇到了问题。 TypeError: Cannot read proper
我得到的错误是 Cannot read property 'history' of undefined .我已正确导入 useHistory()来自 react-router-dom 的钩子(Hook
这个问题在这里已经有了答案: Cannot read property 'history' of undefined (useHistory hook of React Router 5) (7 个回
使用方法useHistory()正确吗?我无法从一个 react 组件过渡到另一个。 根据 React 文档和 Stack Overflow 上的说明,我无法从 App.js 过渡到 MyCompon
我正在尝试从“react-router-dom”导入 useHistory,但是,我收到此错误:导入错误:“useHistory”未从“react-router-dom”导出。 我也检查了其他答案,例
我是一名优秀的程序员,十分优秀!