我正在尝试从子组件URL更新父组件标题。但子组件被加载为导航
这是我的沙盒
https://codesandbox.io/s/react-typescript-forked-z1ijxi
这是我的布局.tsx
import { createContext, useContext, useState } from "react";
import { Outlet, Link } from "react-router-dom";
const Layout = () => {
const title = "";
return (
<>
<h2>{title}</h2>
<nav>
<ul>
<li>
<Link to="/">Home</Link>
</li>
<li>
<Link to="/blogs">Blogs</Link>
</li>
<li>
<Link to="/contact">Contact</Link>
</li>
</ul>
</nav>
<Outlet />
</>
);
};
export default Layout;
在这里,我需要在加载每个子组件时更改{title
我试着按照这个答案去做。但是我没能做到。对不起,在React中非常新
1条答案
按热度按时间mwg9r5ms1#
我建议在你的项目中使用React Redux。这个库添加了一个变量命名空间,每个组件都可以使用。从这个全局命名空间,你可以定义一个
title
变量,这个变量可以被布局组件访问,并且可以被任何其他组件编辑,不管它在哪里。Redux需要一些时间来学习,但它在各种项目中都非常有用。This article提供了更多关于Redux概念的信息,尽管确切的实现有点过时。