我是新来的反应者。我试图通过单击作为现有渲染组件一部分的按钮来重定向到组件。 现在,我希望当我单击按钮时,应该呈现新组件,并且应该隐藏现有组件(也为按钮)。
render(){
return(
<div className='container'>
<table className='table table-striped'>
<thead>
<tr>
<th>User_Id</th>
<th>User_Name</th>
<th>Email</th>
</tr>
</thead>
<tbody>
{this.state.arr.map((card)=>{
return(
<tr>
<td>{card.user_id}</td>
<td>{card.user_name}</td>
<td>{card.email}</td>
<td>
<button className="btn btn-outline-primary ml-2 my-2 my-sm-0">Edit</button>
//click here(the Edit button) to Redirect to another component
</td>
<td><button className="btn btn-outline-primary ml-2 my-2 my-sm-0">Delete</button></td>
</tr>
) })}
</tbody>
</table>
</div>
)
}
并且要渲染的组件是-
export default class Edit extends Component{
render(){
return(
<div>
<h1>Edit User.</h1>
</div>
)
}
}
答案 0 :(得分:0)
import { Route } from 'react-router-dom'
const Button = () => (
<Route render={({ history}) => (
<button
type='button'
onClick={() => { history.push('/new-location') }}
>
Click Me!
</button>
)} />
)
答案 1 :(得分:0)
react-router-dom
有一个Link
组件,可以自行处理。您所要做的就是在to
道具下提供URL重定向到该URL。只需将您的button
元素替换为Link
组件:
import { Link } from 'react-router-dom';
<Link to="/url-to-edit" className="btn btn-outline-primary ml-2 my-2 my-sm-0">Edit</Link>