我有一个使用材料 UI 的应用程序,List
带有 ListItem
s。
我希望用户能够单击ListItem
并使其打开Modal
或Collapse
以提供有关ListItem
的更多信息。我希望视图保持不变(总体上(,尽管使用链接到该模态或折叠的新 url。
现在,我所能得到的只是用户单击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} />} />
这进入了一个全新的页面。如何将其连接到以便我可以在同一页面中显示列表详细信息?
如何设置组件/路由以更改 url 但只更改 UI(而不是呈现一个全新的页面?
不要把<Link to={'/listitem/${listitem.id}'}>
放在那里。而是将具有单击功能的单击处理程序作为this.props.router.push('/bar')
。这将导致路由更改。
当模态为 false 时,您可以使用相同的方法将 url 恢复到以前的 url。