Я использую SPA без помощи стороннего маршрутизатора.Я хочу перенаправить на внешний URL-адрес внутри функции.
Очевидно, что href и установка маршрутизаторов не решают мою проблему.
Если вы хотите перенаправить на внешний URL, а не на что-то внутреннее, то это проще. Вы получаете объект window.location и можете сделать это возможным. Я могу понять, почему <a href> не будет правильным выбором, чтобы сделать это программно.
window.location
<a href>
Ниже работает отлично. Я использовал setTimeout для имитации программного перенаправления.
setTimeout
class App extends React.Component { componentDidMount() { setTimeout(() => { window.location.href = 'https://praveen.science/'; }, 1000); } render() { return ( <div className="App"> <h1>Hello CodeSandbox</h1> <h2>Start editing to see some magic happen!</h2> </div> ); } } const rootElement = document.getElementById("root"); ReactDOM.render(<App />, rootElement);
<script src="https://cdnjs.cloudflare.com/ajax/libs/react/16.6.3/umd/react.production.min.js"></script> <script src="https://cdnjs.cloudflare.com/ajax/libs/react-dom/16.6.3/umd/react-dom.production.min.js"></script> <div id="root"></div>