React:自定义HashRouter以不对某些URL使用哈希

时间:2019-05-23 10:51:18

标签: javascript reactjs redirect react-router

我正在将react-router-dom用作应用程序的路由器。我需要重定向一些像这样的哈希网址:http://localhost:3000/#/contract?id=8171675304

所以我使用了 HashRouter 。此解决方案适用于上面的链接,但问题是我进行了安全重定向(使用 AuthenticationProvider ),并且我注意到哈希已添加到URL中。

我尝试了这种解决方案,但是即使更改为重定向到某个随机URL,重定向也无法正常工作。

这是我的应用程序组件:

const onComponentDidMount = ({ history }) => {
  const { hash, href } = window.location;
  if (href.includes('authentication')) {
    debugger;
    window.stop();
    window.location.href = 'https://google.com';
  }
};

const enhance = compose(
  lifecycle({
    componentDidMount() {
      /* istanbul ignore next */
      onComponentDidMount(this);
    },
  }),
);
const HashRoute = enhance(HashRouter);

export const displayIndex = () => {
  ReactDOM.render(
    <HashRoute>
      <AuthenticationProvider>
        <OidcSecure>
          <App />
        </OidcSecure>
      </AuthenticationProvider>
    </HashRoute>,
    document.getElementById('root'),
  );
};

0 个答案:

没有答案