我已经找到了重定向到外部链接的这个解决方案,它对我的一个页面起了作用。
但对于另一页,它不再有效,我不知道为什么。
redirect.jsx
import React from "react";
import { BrowserRouter, Route } from 'react-router-dom'
export default class Redirect extends React.Component {
render() {
return (
<Route path='/hello' component={() => {
window.location.href = "example.com";
return null;}}/>
);
}
}test.jsx
import React from "react";
import ReactDOM from "react-dom";
import {BrowserRouter} from 'react-router-dom'
import MainExport from './components/redirect.jsx';
ReactDOM.render(
<BrowserRouter>
<div>
<MainExport />
</div>
</BrowserRouter>, document.getElementById("content")
);test.html
<html>
<head>
<meta charset="utf-8">
</head>
<body>
<div className="App">
<div id="content" />
<div/>
<script src="dist/bundle/test.bundle.js" type="text/javascript"></script>
</body>
</html>当我加载这个页面时,我希望它重定向到URL "/hello“并从"example.com”显示页面。
相反,它什么也不做。
我做错了什么?
编辑:有些答案是有帮助的,但都没有奏效。
我发现使用Redirect组件呈现并进行重定向,但在某种程度上这样做,使我的Flask服务器实际上不提供文件。我看到的只是一个空白的屏幕。
将名称更改为MyRedirect也不能使其工作。
使用render而不是component似乎也没有影响。
重定向仍未发生.
(我仍然没有在JS控制台或服务器端看到任何错误消息。)
发布于 2020-04-02 20:39:58
如果使用react路由器,则不需要创建自己的重定向组件。他们已经为你做了一个。
您只需要导入它并将其呈现为重定向。
import React from 'react'
import { Redirect } from 'react-router-dom'
export default () => <Redirect to="/hello" />发布于 2020-04-02 20:47:37
首先要做的是。路由器按照名称xDDDD来处理路由,但如果usaw要退出应用程序的作用域,则在作用域中。将锚标记添加到用户要单击的按钮中。
注意:它们应该是“a”标签,如果你的网域链接不起作用的话,它的目标是把外接端重定向到你身上。但是如果您仍然希望在yow BrowserRouter上看到,那么在路由组件上使用render,而不是组件
<Route path=“the-path” render={()=>window.location-and-stuff} />发布于 2020-04-02 23:18:14
看起来我根本不需要使用React :要执行重定向,我可以使用普通的javascript,只需执行window.location.href = "example.com"
https://stackoverflow.com/questions/61000663
复制相似问题