Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/reactjs/24.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Reactjs 更改“;“回去”;对应于使用react router dom访问的最后一页的按钮标签_Reactjs_React Hooks_React Router Dom - Fatal编程技术网

Reactjs 更改“;“回去”;对应于使用react router dom访问的最后一页的按钮标签

Reactjs 更改“;“回去”;对应于使用react router dom访问的最后一页的按钮标签,reactjs,react-hooks,react-router-dom,Reactjs,React Hooks,React Router Dom,我正在尝试使用react路由器dom实现一个返回按钮。按钮工作正常,但我的问题是根据访问的最后一页相应地更改其标签。 此按钮将仅出现在可从两个不同页面访问的一个特定组件中 import { useHistory } from "react-router-dom"; export const GoBack = ({ label }) => { const history = useHistory(); return ( <div> <butto

我正在尝试使用react路由器dom实现一个返回按钮。按钮工作正常,但我的问题是根据访问的最后一页相应地更改其标签。 此按钮将仅出现在可从两个不同页面访问的一个特定组件中

import { useHistory } from "react-router-dom";

export const GoBack = ({ label }) => {
  const history = useHistory();
  return (
    <div>
      <button onClick={() => history.goBack()}>{label}</button>
    </div>
  )
};
从“react router dom”导入{useHistory};
导出常量GoBack=({label})=>{
const history=useHistory();
返回(
history.goBack()}>{label}
)
};

干杯

像这样传递当前位置:
使用
链接

您的下一条路径`
推送历史记录:

this.props.history.push({
路径名:'/next',
状态:{prevPath:this.props.location.pathname}
})
别忘了用路由器将组件包装成
(否则此.props.location将不可用)。
现在您可以在下一个组件中获取prevPath

componentDidMount(){
const{prevPath}=this.props.location.state;//我认为它在这里,但谷歌需要确保
这是我的国家({
普雷维思
})
}
现在,您可以对按钮进行条件渲染:

render(){
返回(
{this.state.prevPath==“yourrequiredprevpath”&&go johnny go}
)
}

我强烈认为,对于您的问题,有一个更好、更稳定的答案,但因为没有人回答,所以在您找到它之前,这将使您继续前进。

像这样传递您当前的位置:
使用
链接

您的下一条路径`
推送历史记录:

this.props.history.push({
路径名:'/next',
状态:{prevPath:this.props.location.pathname}
})
别忘了用路由器将组件包装成
(否则此.props.location将不可用)。
现在您可以在下一个组件中获取prevPath

componentDidMount(){
const{prevPath}=this.props.location.state;//我认为它在这里,但谷歌需要确保
这是我的国家({
普雷维思
})
}
现在,您可以对按钮进行条件渲染:

render(){
返回(
{this.state.prevPath==“yourrequiredprevpath”&&go johnny go}
)
}

我强烈认为,对于您的问题,有一个更好、更稳定的答案,但因为没有人回答,所以在您找到答案之前,这将使您继续前进。

为什么您只为goBack制作单独的组件?为什么您不能用布尔值传递道具来处理您的情况?就像我说的=>此按钮将只出现在一个特定的组件中,可以从两个不同的页面访问。我需要知道用户来自这些页面中的哪一个@Raghulshred如果您确实想要页面用户来自的上一个URL,您可以使用“document.referer”,检查它在您的场景中是否有效。为什么您只为goBack制作单独的组件?为什么您不能用boolean传递道具来处理您的案例?正如我所说=>此按钮将仅出现在一个特定组件中,该组件可以从两个不同的页面访问。我需要知道用户来自这些页面中的哪一个@Raghulshred如果您确实想要页面用户来自的上一个URL,您可以使用“document.referer”,检查它是否适用于您的场景。感谢您的回答@saeed我会尝试尝试尝试尝试。感谢您的回答@saeed我会尝试尝试尝试尝试。