我也是React的新手,但是遇到了这个问题。
react-router可接受答案的一个基本替代方法是use
withRouter,它包装了您要隐藏的组件并为其提供了
locationprop(以及其他)。
import { withRouter } from 'react-router-dom'; const ComponentToHide = (props) => { const { location } = props; if (location.pathname.match(/routeOnWhichToHideIt/)){ return null; } return ( <ComponentToHideContent/> )}const ComponentThatHides = withRouter(ComponentToHide);
请注意,尽管来自文档的警告:
withRouter不像React
Redux的connect那样订阅位置更改以进行状态更改。而是在位置更改后从组件传播出来,然后重新渲染。这意味着withRouter不会在路由转换时重新呈现,除非其父组件重新呈现。
尽管没有这个警告,但对于与OP非常相似的用例,这种方法似乎对我有用。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)