reactjs - 单击带有 Material-ui 和 react-router 4 的模态时如何更改 URL(但不是整个 View )?

标签 reactjs material-ui react-router-v4

我有一个使用 Material ui 的应用程序 ListListItem s。

我希望用户能够点击 ListItem并让它打开一个 ModalCollapse提供有关 ListItem 的更多信息.我希望 View 保持不变(整体),尽管有一个新的 url 链接到该模态或折叠。

现在,我所能得到的只是用户点击了 ListItem它打开了一个全新的视角。

我想让 ListDetails 或 ListItem 详细信息显示在折叠或模式(或同一页面上的某些 ui)中并且可以链接(有一个 url)

代码:

// List
<List>

<Collapse>
<ListItem <Link to={`/listitem/${listitem.id}`}> />
<ListDetail />
</Collapse>
<ListItem />
<Modal><ListDetail /></Modal>

</List>

// Router
<Route path="/list/:id" render={({ match }) => <ListDetail params={match.params} />} />

这将转到一个全新的页面。如何连接它以便我可以在同一页面中显示 ListDetail?

如何设置组件/路由来更改 url 而只是更改 UI(而不是呈现一个全新的页面?

最佳答案

不放<Link to={'/listitem/${listitem.id}'}>那里。而是将具有点击功能的点击处理程序作为 this.props.router.push('/bar') .这将导致路由改变。

当 modal 为 false 时,您可以使用相同的方法将 url 恢复到以前的 url。

关于reactjs - 单击带有 Material-ui 和 react-router 4 的模态时如何更改 URL(但不是整个 View )?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49355172/

相关文章:

javascript - 使用 React-router v4 进行导航

reactjs - GraphQL - Gatsby.js- React 组件。 - 如何查询变量/参数?

javascript - 如何保存 Api 调用的响应状态?

javascript - 当我只想调用 onClick 时,我的类中的函数总是在页面加载时被调用

javascript - 为什么 Material-UI 无法识别 theme.spacing 函数?

reactjs - 如何在 Material UI 中覆盖 .MuiTypography-body1 类

ios - React Native WebView 滚动行为无法按预期工作

reactjs - Material-ui-next typescript 错误

reactjs - 移动到 Cloudfront + SSL 后,应用程序中的 React 路由器链接损坏

javascript - React Router V4 浏览器返回不工作