Маршрутизация не работает в надстройках на основе React - PullRequest
0 голосов
/ 28 апреля 2020

Я создал новое дополнение для Excel с помощью генератора Yeoman и выбрал параметр панели задач React.

Я пытаюсь создать расширение, которое будет иметь несколько страниц для различных функций этого расширения, поэтому Я установил досягающий маршрутизатор и написал базовую c маршрутизацию, как я сделал бы для обычного приложения React. Тем не менее, я получаю эту ошибку Cannot GET /insert, отображаемую в панели надстроек в Excel при каждой попытке доступа к маршруту.

Это мой код в файле App.js:

return (
      <div>
        <nav>
          <Link to="/">Login</Link> | <Link to="insert">Insert</Link> | <Link to="update"> Update</Link> |{" "}
          <Link to="remove">Remove</Link>
        </nav>
        <Router>
          <Login path="/" />
          <Insert path="insert" />
          <Remove path="remove" />
          <Update path="update" />
        </Router>
        <Button
          className="ms-welcome__action"
          buttonType={ButtonType.hero}
          iconProps={{ iconName: "ChevronRight" }}
          onClick={this.click}
        >
          Run
        </Button>
      </div>
    );

I Я включил только оператор return, так как все остальное в значительной степени является начальным кодом по умолчанию, который я получил от использования Yeoman Generator. Эта проблема, вероятно, связана не с надстройками Excel напрямую, а с маршрутизацией с помощью React. В своих проектах я использовал только маршрутизатор досягаемости для не слишком сложной маршрутизации, но мой код кажется корректным, поэтому мне интересно, не является ли это проблемой с файлом manifest.xml, но я не уверен.

Есть идеи, откуда возникла проблема?

Спасибо, что уделили время.

1 Ответ

1 голос
/ 28 апреля 2020

Мне удалось решить мою собственную проблему, поэтому я публикую здесь свое решение для тех, кто может столкнуться с этой проблемой.

Я не уверен, почему, но по сути доступ к маршрутизатору не работает для надстроек Excel , Я лично не нашел никакой конфигурации, которая бы работала. Это может быть как-то связано с браузером, который запускает добавление в боковой панели, который может быть старым или несовместимым в некотором роде.

Так что, в любом случае, я нашел решение, которое я заменил reach-router на react-router-dom и использовал компонент HashRouter вместо обычного маршрутизатора. Если вы выполняете только базовую c маршрутизацию, использование HashRouter поверх Router не должно требовать изменения вашего кода. Вы не можете просто использовать обычный компонент Router, к сожалению, он просто не работает.

Надеюсь, это поможет.

...