我试图根据路线来显示/隐藏一个按钮。
在home.js中,我呈现了以下内容:
<Route exact path="/" render={()=> <TotalStuff totalStuff={totalStuff} />} />
<Link to="/addStuff"><button>Add Stuff</button></Link>
<Route path="/addStuff" exact component={AddStuff} />
当route为“ /”时,它只是使用“添加填充”按钮和一些文本内容来呈现addStuff组件。
但是我想在 AddStuff 组件中隐藏“添加材料”按钮。
尝试使用window.location.pathname时,不会随着路由器的更改而更新。
我还尝试了 withRouter 。但是,我正在寻找更好的直接方法。
谢谢。
答案 0 :(得分:2)
您可以将Link
放在第一个render
组件的Route
属性中,以使其不显示在/addStuff
路径上。
<Route
exact
path="/"
render={() => (
<div>
<TotalStuff totalStuff={totalStuff} />
<Link to="/addStuff">
<button>Add Stuff</button>
</Link>
</div>
)}
/>
<Route path="/addStuff" exact component={AddStuff} />