Javascript 您不应该使用<;链接>;a<;路由器>;在皮拉尔
在默认Piral实例内调试pilet时,我遇到此错误:Javascript 您不应该使用<;链接>;a<;路由器>;在皮拉尔,javascript,reactjs,react-router-dom,piral,Javascript,Reactjs,React Router Dom,Piral,在默认Piral实例内调试pilet时,我遇到此错误: Uncaught Error: Invariant failed: You should not use <Link> outside a <Router> My pilet index.jsx: import { Link } from 'react-router-dom' const App = () => 'My pilet' export function setup(app) { app.r
Uncaught Error: Invariant failed: You should not use <Link> outside a <Router>
My pilet index.jsx:
import { Link } from 'react-router-dom'
const App = () => 'My pilet'
export function setup(app) {
app.registerPage('/my-pilet', App)
app.registerMenu(() => <Link to="/my-pilet">My Pilet</Link>)
}
从'react router dom'导入{Link}
const App=()=>“我的皮莱”
导出功能设置(应用程序){
应用程序注册表页('/my pilet',应用程序)
app.registerMenu(()=>My Pilet)
}
我的Piral实例使用了Piral cli
提供的样板文件,并且完全没有改变。它甚至有一个默认菜单项,可以正常工作而不出错:
(未找到是Piral提供的默认菜单项)
为什么我会犯这个错误
- 皮拉尔0.12.4
- Piral CLI 0.12.4
- Piral CLI网页包0.12.4
import { BrowserRouter as Router, Link } from 'react-router-dom'
const App = () => 'My pilet'
export function setup(app) {
app.registerPage('/my-pilet', App)
app.registerMenu(() => <Router> <Link to="/my-pilet">My Pilet</Link> <Router>)
}
从'react Router dom'导入{BrowserRouter as Router,Link}
const App=()=>“我的皮莱”
导出功能设置(应用程序){
应用程序注册表页('/my pilet',应用程序)
app.registerMenu(()=>My Pilet)
}
来源:您的设置一定有问题。如果出现此错误,则表示您的
链接
的路由上下文与来自应用程序外壳的路由上下文不同。我怀疑您没有共享react路由器dom
。将其放入pilet的package.json的peerDependencies
。pilet提供了一个现成的路由器,因此这意味着在同一应用程序中有两个路由器如果这是一个脚手架pilet(通过pilet new
或npm init pilet
),并且缺少对等依赖项,请告知我们。事实不应如此。当你搭建脚手架的时候,设置应该是这样的,这样就可以了。我的木桩没有搭建脚手架,我自己做的,所以我错过了所有的对等依赖。谢谢你的澄清!我们让开发人员决定他们想要共享哪些依赖项(以及他们想要实际使用哪些共享依赖项)。因此,你们甚至可以带上你们自己的React(或者React路由器来保持话题)和你们的pilet。这不是我们的建议,但可能有道理。
import { BrowserRouter as Router, Link } from 'react-router-dom'
const App = () => 'My pilet'
export function setup(app) {
app.registerPage('/my-pilet', App)
app.registerMenu(() => <Router> <Link to="/my-pilet">My Pilet</Link> <Router>)
}