react-router 相关问题

React Router - 一个完整的React路由库,灵感来自Ember的路由系统

我正在使用React-Router-Dom库来创建不同页面的路由,它正在加载除产品页面之外的所有页面

我正在使用 React-Router-Dom 库来定义我的程序的路由,它适用于除产品页面之外的所有页面,并且在 Route.js 中我不明白为什么? 索引.js 从 're... 导入 React

回答 1 投票 0

如何使用React Router解决重路由的页面切换速度慢的问题?

我有一个 React 项目,并使用 React Router DOM v6 来管理我的所有路由。 我有一条路线使用相当重的组件,当切换到该重组件时,有 1 秒以上的延迟...

回答 2 投票 0

react-router中的useloaderdata()是否解析promise?

} loader={blogPostLoader} /> 博客页面 函数 BlogPostsPage() { const posts = useLoaderData() 返回 ( <> 我们的博客 <Route index element={<BlogPostsPage />} loader={blogPostLoader} /> 博客页面 function BlogPostsPage() { const posts = useLoaderData() return ( <> <h1>Our Blog Posts</h1> <Posts blogPosts={posts} /> </> ); } export function loader () { return getPosts() } getPosts() export async function getPosts() { const response = await fetch('https://jsonplaceholder.typicode.com/posts'); if (!response.ok) { throw { message: 'Failed to fetch posts.', status: 500 }; } return response.json(); } 我的主要疑问是,由于我们在加载器函数中返回一个承诺,因此useLoaderData()是否可以为我们解决它,因为我们不等待数据? 这是我的疑问。 useLoaderData钩子不会解析从加载函数返回的任何Promise,它只是返回从加载函数返回的(已解决)值。 每个路由可以定义一个“loader”函数,为路由提供数据 元素在渲染之前。 (强调我的) loader 在渲染路由(和 element 组件)之前调用,因此在渲染路由时,所有 Promise 都已解决。换句话说......所有“等待”都是在加载器函数和路由器中完成的,组件被安装/渲染,数据在组件中立即可用。 useLoaderData 不启动获取。它只是读取 React Router 内部管理的 fetch 结果,因此当它因路由之外的原因重新渲染时,您无需担心它会重新获取。 您可以在以下位置找到更多详细信息:https://reactrouter.com/en/main/hooks/use-loader-data 如果您想返回Promise,可以使用defer:https://reactrouter.com/en/main/guides/deferred 基本上,一旦您使用 Promise 返回 defer,您就可以使用 React.Suspense 作为后备(加载指示器),并在 Await (by react-router-dom) 解析后使用 Promise 来渲染组件。 这是指南的快照 import { Await, defer, useLoaderData, } from "react-router-dom"; import { getPackageLocation } from "./api/packages"; async function loader({ params }) { const packageLocationPromise = getPackageLocation( params.packageId ); return defer({ packageLocation: packageLocationPromise, }); } export default function PackageRoute() { const data = useLoaderData(); return ( <main> <h1>Let's locate your package</h1> <React.Suspense fallback={<p>Loading package location...</p>} > <Await resolve={data.packageLocation} errorElement={ <p>Error loading package location!</p> } > {(packageLocation) => ( <p> Your package is at {packageLocation.latitude}{" "} lat and {packageLocation.longitude} long. </p> )} </Await> </React.Suspense> </main> ); } 祝你好运!!!

回答 3 投票 0

我正在使用react-router-dom来创建不同页面的路由,它正在加载除产品页面之外的所有页面

我是新来反应的。我正在使用react-router-dom库来定义我的程序的路由,它适用于除产品页面之外的所有页面,并且在Route.js中我不明白为什么? //索引.js 我...

回答 1 投票 0

错误:“A <Route> 只能用作 <Routes> 元素的子元素,从不直接渲染”

我正在尝试创建一个基本的私有路由,目前没有角色权限和限制,当我使用从react-router-dom文档中获得的语法时,它声明...

回答 1 投票 0

如何在react-router v5中监听查询参数更改事件

我希望能够监听查询参数更改事件,最好通过钩子,但任何事情都很好。我找不到任何表明它甚至可以使用react-router的东西,所以其他

回答 2 投票 0

保护路由后,虽然登录成功,但还是卡在了登录页面

我正在使用保护我的路由,场景是在成功登录/仪表板后导航用户,问题是无论我成功登录多少次...

回答 1 投票 0

主题更改时颜色不改变

我没有得到所需的输出。我正在尝试编写一个小任务。任务是我想更改屏幕背景的颜色,文本和按钮,如上传的图像所示。Th...

回答 2 投票 0

我无法获得所需的输出

我没有得到所需的输出。我正在尝试编写一个小任务。任务是我想更改屏幕背景、文本和按钮的颜色,如上传的图像所示。Th...

回答 1 投票 0

UseHistory 推送会更改 url,但不会更改网站 [重复]

我在V5中使用React router dom。 这是我的路由器: <

回答 3 投票 0

create-react-app:根据目录中的文件自动路由

如何修改create-react-app以便自动为目录中的react组件创建路由? 例如,我的 src 目录如下所示: ├── 应用程序.css ├── App.js ├── App.test.j...

回答 1 投票 0

如何通过 MUI 选项卡使用 React 路由器

您能否解释一下我如何使我的路线与 MUI 选项卡一起使用? 由于我不这样编写代码,也不经常使用 MUI,所以我不明白如何使其工作。有什么想法吗? 我记得...

回答 3 投票 0

react 路由器加载程序显示 localStorage 项为空

我有一个加载程序,每当用户打开我的页面时,它就会重定向到 /authroize 页面,这是我的加载程序的代码: 导出函数redirectLoader() { const data = localStorage.getItem("每...

回答 1 投票 0

反应“无法解构属性...因为它为空”[重复]

我是 React 初学者,我只是想在我的网站上制作导航。所以我尝试使用 NavLink 作为导航链接,但这给我带来了这个错误: 无法解构“

回答 1 投票 0

在给定 id 值的 React Router 的子级之一中匹配嵌套路由

想象我有以下路线: 常量路由= [{ id:“1”, 路径:“动物”, 孩子们: [{ id:“1.1”, 路径:“鸟”, 孩子们: [{ ...

回答 1 投票 0

如何在React Router V6中使用<Route>保留查询参数?

我在路线上没有看到任何提及“搜索”参数 https://reactrouter.com/en/main/route/route 目前,至少对于我的项目来说,当匹配新路线并应用时,参数会丢失...

回答 1 投票 0

拒绝执行内联脚本,因为它违反了以下内容安全策略指令:刷新页面时出现“script-src 'self'”

我有一个 Node/React 应用程序,当我刷新生产版本中的页面时,对于除“/”之外的所有路由,都会出现此错误,并显示一个空白页面。 拒绝执行内联脚本,因为...

回答 1 投票 0

“无法加载资源:服务器响应状态为 404(未找到)”,但页面仍然加载

当我从导航菜单中按下仪表板按钮时,仪表板页面会加载,即使如此,它仍然在控制台中显示“404”。当我登录并按 Enter 键时,它会转到相同的网址,但...

回答 1 投票 0

如何使用 React Router 显示完全独立的页面? [重复]

我正在使用 React 创建一个单页面前端项目,问题是我想创建一个应该单独渲染的类似页面的组件。 这个概念基本上是: 第1页:首页...

回答 1 投票 0

Okta 和 React-router 6 useBlocker 不兼容

我正在使用 okta 来保护我的网站,该网站使用 React Route v5。 现在,我想更新到 React Route v6 首先,我尝试了这个并收到错误:“useBlocker 必须在数据路由器内使用”...

回答 1 投票 0

© www.soinside.com 2019 - 2024. All rights reserved.