如何在没有道具的情况下从反应中获取当前路线
How to get the current route from react without props
我正在尝试让 show/hide 按钮根据路线作出反应。
在 home.js 中,我正在渲染以下内容:
<Route exact path="/" render={()=> <TotalStuff totalStuff={totalStuff} />} />
<Link to="/addStuff"><button>Add Stuff</button></Link>
<Route path="/addStuff" exact component={AddStuff} />
当路由为“/”时,它只呈现带有添加内容按钮和一些文本内容的 addStuff 组件。
但我想隐藏 AddStuff 组件中的 "Add Stuff" 按钮。
尝试使用 window.location.pathname 时,它不会随着路由器的变化而更新。
我也尝试过 withRouter。但我正在寻找更好的直接方法。
谢谢。
您可以将 Link
放在第一个 Route
组件的 render
prop 函数中,使其不显示在 /addStuff
路径上。
<Route
exact
path="/"
render={() => (
<div>
<TotalStuff totalStuff={totalStuff} />
<Link to="/addStuff">
<button>Add Stuff</button>
</Link>
</div>
)}
/>
<Route path="/addStuff" exact component={AddStuff} />
我正在尝试让 show/hide 按钮根据路线作出反应。
在 home.js 中,我正在渲染以下内容:
<Route exact path="/" render={()=> <TotalStuff totalStuff={totalStuff} />} />
<Link to="/addStuff"><button>Add Stuff</button></Link>
<Route path="/addStuff" exact component={AddStuff} />
当路由为“/”时,它只呈现带有添加内容按钮和一些文本内容的 addStuff 组件。
但我想隐藏 AddStuff 组件中的 "Add Stuff" 按钮。
尝试使用 window.location.pathname 时,它不会随着路由器的变化而更新。
我也尝试过 withRouter。但我正在寻找更好的直接方法。
谢谢。
您可以将 Link
放在第一个 Route
组件的 render
prop 函数中,使其不显示在 /addStuff
路径上。
<Route
exact
path="/"
render={() => (
<div>
<TotalStuff totalStuff={totalStuff} />
<Link to="/addStuff">
<button>Add Stuff</button>
</Link>
</div>
)}
/>
<Route path="/addStuff" exact component={AddStuff} />