0

我使用 Yeoman 生成器创建了一个全新的 Excel 插件,并选择了 React Task 窗格选项。

我正在尝试构建一个扩展,该扩展将为插件的不同功能提供多个页面,因此我安装了到达路由器并编写了一些基本路由,就像我为常规 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>
    );

我只包含了 return 语句,因为其他所有内容几乎都是我使用 Yeoman Generator 获得的默认启动代码。此问题可能与 Excel 插件没有直接关联,而是与 React 路由有关。我只在我的项目中使用到达路由器来进行不太复杂的路由,但我的代码似乎是有效的,所以我想知道这是否不是manifest.xml文件的问题,但我不确定。

知道问题可能来自哪里吗?

感谢您的时间。

4

1 回答 1

1

我设法解决了我自己的问题,所以我在这里为那些可能遇到这个问题的人发布我的解决方案。

我不知道为什么,但基本上到达路由器不适用于 Excel 插件。我个人没有找到任何可以使它工作的配置。这可能与在侧窗格中运行您添加的浏览器有关,这可能在某种程度上是旧的或不兼容的。

所以,无论如何,我找到的解决方案是我reach-routerreact-router-domHashRouter 组件代替并使用了通常的路由器。如果您只进行基本路由,则使用 HashRouter over Router 不需要您修改代码。但是,您不能只使用常规的路由器组件,不幸的是它不起作用。

希望这可以帮助。

于 2020-04-28T13:12:09.480 回答