2 回答
TA贡献1911条经验 获得超7个赞
由于我在路由器内部渲染,我不明白为什么我可以在 RegisterPage1 中使用重定向而不能在 RegisterPage2 中使用。
React Dev Tools 可以在这里帮助你
正如您在图像底部看到的那样,RegisterPage2
它不在 Router 组件内。将它与图像的最顶部进行比较,React App 被包裹在一个BrowserRouter
. 您将了解为什么会出现这些错误。
如果这样渲染是错误的,那么不添加新路由的正确方法是什么?
您提出的这个要求非常困难。react-router
如果两个 React 应用程序没有共同的 Router 父级,则很难在它们之间遍历。我建议您使用经典的服务器端 http 请求(例如锚标记或window.href.location
),而不是为您正在开发的此功能使用单页应用程序技术
TA贡献1829条经验 获得超13个赞
这个问题是由这条线引起的
ReactDOM.render(
<RegisterPage2 data={res}/>,
document.getElementById('appContainer')
);
此行应该将RegisterPage2组件呈现为React 应用程序的根组件。
在RegisterPage2你使用的时候Redirect,假设RegisterPage2已经有一个父组件,它已经使用了该react- router-dom Router组件。因为它被渲染为根组件而没有被包装在Router组件中,这就是您收到该错误的原因。
添加回答
举报