该功能实现效果类似于vue的provide/inject
而React可通过context进行完成

定义一个公共的文件context/Theme.jsx
import { createContext } from 'react';
const theme = createContext()
export default theme
父组件引入公共文件及子组件
并传递theme值
import React, { useState } from 'react';
import Child from "@/components/Child.jsx"
import Theme from "@/context/Theme.jsx"
export default () => {
const [theme, setTheme] = useState("blue")
return (
<>
<button onClick={() => setTheme("green")}>检验context是否为响应式</button>
<Theme.Provider value={theme}>
<Child />
</Theme.Provider>
</>
)
}
子组件获取数据components/Child.jsx
import React from 'react';
import Theme from "@/context/Theme.jsx"
export default () => {
return (
<Theme.Consumer>
{data => <p>接收父组件context传递的值:{data}</p>}
</Theme.Consumer>
);
}免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:mmqy2019@163.com进行举报,并提供相关证据,查实之后,将立刻删除涉嫌侵权内容。
长按识别二维码并关注微信
更方便到期提醒、手机管理