React Route 中 useHistory() 和 props.history 有什么区别

J T*_*ang 6 history routes reactjs

在我的反应函数中,我可以写:

const history = props.history; 或者 const history = useHistory();

然后我可以使用history.push()history.goBack()以同样的方式。

所以我想知道它们是否不同?

小智 1

这两者几乎没有什么区别

  1. useHistory() 是 React hook,props.history 是 props 的属性
  2. 我们不能在类组件中使用 useHistory() 。
  3. 我们不能直接在功能组件中使用 props.history,因为我们必须用 withRouter 包装组件。请点击此链接点击这里

结论:如果您使用类组件,则使用 props.history,如果您使用功能组件,则使用 useHistory() 钩子