路由似乎在基于 React 的插件中不起作用
Routing doesn't seem to work in React based Addins
我使用 Yeoman 生成器创建了一个全新的 Excel 插件,并且我选择了 React 任务窗格选项。
我正在尝试构建一个扩展程序,该扩展程序将为插件的不同功能提供多个页面,因此我安装了 reach router 并编写了一些基本路由,就像我对常规 React 应用程序所做的那样。但是,每当尝试访问路由时,我都会在 Excel 的插件窗格中显示此 Cannot GET /insert
错误。
这是我在 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 Addins 没有直接联系,而是与 React 的路由有关。我只在我的项目中使用 reach router 来进行不太复杂的路由,但我的代码似乎是有效的,所以我想知道这是否不是 manifest.xml
文件的问题,但我不确定。
知道问题出在哪里吗?
感谢您的宝贵时间。
我设法解决了我自己的问题,所以我将我的解决方案发布在这里供可能遇到此问题的人使用。
我不确定为什么,但基本上到达路由器不适用于 Excel 插件。我个人没有找到任何可以使其工作的配置。这可能与在侧窗格中运行您的添加的浏览器有关,该浏览器可能是旧的或以某种方式不兼容。
所以,无论如何,我找到的解决方案是将 reach-router
替换为 react-router-dom
并使用 HashRouter 组件而不是通常的 Router。如果你只是做基本的路由,使用 HashRouter over Router 不应该要求你修改你的代码。不过,您不能只使用常规 Router 组件,不幸的是它不起作用。
希望对您有所帮助。
我使用 Yeoman 生成器创建了一个全新的 Excel 插件,并且我选择了 React 任务窗格选项。
我正在尝试构建一个扩展程序,该扩展程序将为插件的不同功能提供多个页面,因此我安装了 reach router 并编写了一些基本路由,就像我对常规 React 应用程序所做的那样。但是,每当尝试访问路由时,我都会在 Excel 的插件窗格中显示此 Cannot GET /insert
错误。
这是我在 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 Addins 没有直接联系,而是与 React 的路由有关。我只在我的项目中使用 reach router 来进行不太复杂的路由,但我的代码似乎是有效的,所以我想知道这是否不是 manifest.xml
文件的问题,但我不确定。
知道问题出在哪里吗?
感谢您的宝贵时间。
我设法解决了我自己的问题,所以我将我的解决方案发布在这里供可能遇到此问题的人使用。
我不确定为什么,但基本上到达路由器不适用于 Excel 插件。我个人没有找到任何可以使其工作的配置。这可能与在侧窗格中运行您的添加的浏览器有关,该浏览器可能是旧的或以某种方式不兼容。
所以,无论如何,我找到的解决方案是将 reach-router
替换为 react-router-dom
并使用 HashRouter 组件而不是通常的 Router。如果你只是做基本的路由,使用 HashRouter over Router 不应该要求你修改你的代码。不过,您不能只使用常规 Router 组件,不幸的是它不起作用。
希望对您有所帮助。