使用状态推送后,React Router 不会返回

时间:2021-02-09 17:59:47

标签: reactjs redux react-router

我有 2 个组件 UserUserInfo,当我通过使用带有状态对象的连接反应路由器推送从 User 导航时,从 goBack() 返回 UserInfo {1}} 不起作用。但是,只推送没有状态对象的路径名就可以正常工作。我认为问题在于状态是一个对象,在每次重新渲染时,react-router 将其视为新的入口堆栈并向堆栈添加一个新键。以下是组件:

import React from "react"
import { useDispatch } from "react-redux";
import { push } from "connected-react-router";
const User = () => {
  const userObject = { id: 1 };
  const dispatch = useDispatch();
  
  // This doesn't allow going back from destination
  const onClick = () => dispatch(push("/user_info",{ userId: userObject.id})
  
  // This does
   const onClick = () => dispatch(push("/user_info")

  return (
    <button onClick={onClick}> test </button>
   )
}
import React from "react"
import { useDispatch } from "react-redux";
import { goBack } from "connected-react-router";

const UserInfo = () => {
  const dispatch = useDispatch();
  
   const onClick = () => dispatch(goBack())

  return (
    <button onClick={onClick}> test </button>
   )
}

0 个答案:

没有答案