总的来说,我的应用程序的结构如下:
<Provider>
<ConnectedRouter>
<App>
<PageContainer>
<Page>
<Link>
问题是,当我尝试运行时-我收到“未捕获的不变违规:您不应在路由器外部使用链接”错误。我尝试将<Link>
包装在<Page>
内的另一个Router内,但这似乎会创建路由器的另一个实例,并且导航无法正确注册。可能是因为最初的历史记录是在顶层创建的,并在此处传递了路由器,并且该历史记录对象没有传递到页面内的路由器。
首先,我很困惑为什么会收到错误-因为Link
位于路由器内部,尽管不是该路由器的直接子代。
第二,如果我绝对需要将链接包装在路由器中,如何确保它是相同的路由器实例?还是一个确定的模式-让<ConnectedRouter>
出现在应用程序的不同级别并多次出现?
请帮助!