我无法在新的 react-router v6 中将道具传递给我的 Outlet 组件。我尝试了直接的解决方案: render() {return(<Outletname="My name"/>); } 这正确地呈现了子组件,但是没有道具被传递给孩子。 React 团队(或与此相关的任何其他人)提供的示例都没有显示带有道具的 Outlets,所以我担心这实际上不是一回事。有...
importReact, {Component}from'react'import{ useOutletContext }from'react-router-dom';// outlet 状态共享// 无状态子组件自身发生数据变化,同步给outlet上游组件 本文件以此实现数据共享constTest= () => {const[count, setCount] =useOutletContext();console.log('count',count)//打印父数据//useOutletCon...
import * as React from "react"; import type { User } from "./types"; import { Outlet, useOutletContext } from "react-router-dom"; type ContextType = { user: User | null }; export default function Dashboard() { const [user, setUser] = React.useState<User | null>(null); return...
React Router API Reference react-router Outlet Function Outlet Outlet(props):React.ReactElement|null Renders the matching child route of a parent route or nothing if no child route matches. import{Outlet}from"react-router" exportdefaultfunctionSomeParent() { ...
In case anyone is looking for a nice solution, do this with context: import React from 'react' import { useOutlet } from 'react-router-dom' const Context = React.createContext() export function Outlet({ data }) { const el = useOutlet() return <Context.Provider value={data}>{el}</...
Umi4 在代码层做了修改,将react-router@5升级到react-router@6,所以路由相关的一些 api 存在着使用上的差异。 props 默认为空对象,以下属性都不能直接从 props 中取出: 需要采用下面的方式: children 代码语言:javascript 复制 import{Outlet}from'umi';<Outlet/>; ...
我没有嘲笑useOutletContext,而是使用组合和React路由器的MemoryRouter来模仿真正的应用程序的行为。
要使用<Outlet />组件,您需要使用<MemoryRouter />渲染<Preferences />:
要使用<Outlet />组件,您需要使用<MemoryRouter />渲染<Preferences />:
我在React Router v6 中使用一个组件来管理私有路由,它对身份验证令牌进行一些检查,并且将渲染 Outlet 组件或重定向到登录页面...