什么时候可以支持react19?
react19中,我用嵌套路由的时候,总报错:chunk-C37GKA54.mjs:188 Uncaught Error: useLoaderData must be used within a data router.
去掉keepalive的包裹就正常了
+1
理论上是支持 reac19 的,你的问题原因大概是<AliveScope> 节点需要确保放置在各类 Router 方案的根节点内
理论上是支持 reac19 的,你的问题原因大概是 节点需要确保放置在各类 Router 方案的根节点内
我原先在react18上一直正常运行,切成react19才异常的。
示例,大概结构如下:
<RouterProvider>
<KeepAlive>
<Test>
</Test>
</KeepAlive>
</RouterProvider>
<Test>节点中,调用了useLoaderData();
在react18中,这一切都能正常运行;但在react19中,就报错;
react19中,去掉<KeepAlive>,就不报错了。
我看文档也说了,某节点调用useLoaderData(),需要确保该节点在Router根结点内才能生效。
按你说的,如果我节点不是在Router根结点内,那去不去掉<KeepAlive>,都应该报错的。
我也遇到报错了,加上<KeepAlive> 会提示Uncaught Error: useNavigate() may be used only in the context of a <Router> component.
后退到react18就好了
"react": "19.1.1", "react-router": "^7.6.3"
react19可以用,调整自己的业务架构,确保useLoaderData()等方法,在KeepAlive之外使用,这样可以一劳永逸解决问题。
react18不报错可能是底层检查松的缘故。改了半天,终于能用React19了