реагирующий маршрутизатор в расширении CEP (например, Premiere Pro) - PullRequest
0 голосов
/ 17 апреля 2019

Я пытаюсь использовать реагирующий маршрутизатор в расширении CEP. мой маршрут выглядит так:

let prefix = decodeURIComponent(window.location.pathname).replace("index.html", "")

  <Router>
      <Switch>
        <Route exact path={prefix + "index.html"} component={MainComponent} />
        <Route path={prefix + "other/:otherId"} component={OtherComponent} />
      </Switch>
  </Router>

Похоже, что это единственный способ обмануть маршрутизатор, чтобы он принял местоположение расширения - поскольку у него есть document.location 'file: //path/to/cep/extention/index.html'. Проблема, с которой я сейчас сталкиваюсь, заключается в том, что это работает только на Mac, но постоянно не соответствует ни одному пути в Windows. Я подозреваю, что это потому, что расположение в окнах выглядит так: 'file: /// C: / Program% 20Files% 20 (x86) /Common%20Files/…be/CEP/extensions/extension-name/index.html' и «C:» сбивает с толку маршрутизатор?

Есть ли способ обмануть маршрутизатор, чтобы он принимал URI такого типа?

1 Ответ

0 голосов
/ 17 апреля 2019

Простое решение - используйте HashRouter вместо BrowserRouter. Это также позволяет использовать нормальные пути:

import { Route, HashRouter as Router, Switch } from 'react-router-dom'
<Router >
  <Switch>
    <Route exact path="/" component={MainComponent} />
    <Route path="/other/:otherId" component={OtherComponent} />
  </Switch>
</Router>
...