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組件中,這就是您收到該錯誤的原因。
添加回答
舉報