Реагируйте: Настройте HashRouter, чтобы не использовать хэш для некоторых URL - PullRequest
0 голосов
/ 23 мая 2019

Я использую react-router-dom в качестве маршрутизатора для моего приложения.Мне нужно перенаправить некоторые URL-адреса хеша, как этот: 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'),
  );
};
...