前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >React通过conetxt实现多组件传值

React通过conetxt实现多组件传值

作者头像
明知山
发布2021-10-25 13:35:25
4280
发布2021-10-25 13:35:25
举报
文章被收录于专栏:前端开发随笔前端开发随笔

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

在这里插入图片描述
在这里插入图片描述

定义一个公共的文件context/Theme.jsx

代码语言:javascript
复制
import { createContext } from 'react';
const theme = createContext()
export default theme

父组件引入公共文件及子组件 并传递theme值

代码语言:javascript
复制
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

代码语言:javascript
复制
import React from 'react';
import Theme from "@/context/Theme.jsx"
export default () => {
    return (
        <Theme.Consumer>
            {data => <p>接收父组件context传递的值:{data}</p>}
        </Theme.Consumer>
    );
}
本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2021-10-21 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档