我正在内部 UI 上创建单页应用程序。屏幕左侧出现一个菜单 ( CollectionsInventory
),其中包含Link
从 API 调用生成的 s,在右侧,生成的对象 (a Collection
) 显示在其组件中。道具通过 a 传递url-parameters
。我还使用Grid
来自 patternfly4 的组件来管理 UI。这是它的样子:
<Grid hasGutter>
<GridItem span={3}>
{data != null ?
<CollectionsInventory collections={data[0].collections}/>
:
<React.Fragment>
<Spinner />
</React.Fragment>
}
</GridItem>
<GridItem span={9}>
<Router primary={false}>
<React.Fragment path="/" />
<Collection path="collection/:collectionName" />
</Router>
</GridItem>
</Grid>
这就是问题所在;我可以通过单击相应的链接或直接访问它来显示一个集合(例如,如果用户想要访问他最喜欢的集合的书签,这很有用)。但随后,收藏品就卡在那里了。每当我点击一个新链接时,什么都没有改变。也许是因为它在同一条路上?有没有办法让链接触发重新渲染?或者我没有使用正确的组件,因为带有链接的菜单在路由器之外?
在CollectionsInventory
中,链接显示在表格中,并且是从集合名称生成的,如下所示:
const defaultRows = collectionList.map( collection => {
const collectionLink=`collection/${encodeURI(collection.name)}`
return {
cells: [
{
title:
<Link to={collectionLink}>
{collection.name}
</Link>,
name: collection.name
},
collection.resourceType,
collection.size
]
}
});