React的context传值方法介绍


一.函数组件context传值方法

1.在src在创建一个context.js文件
在这里插入图片描述
2.在context.js文件写如下代码

import React from 'react'
const MyContent = React.createContext()
export default MyContent

3.父组件

import React from 'react'
import MyContent from '../context'
import Head from "./Head"
export default function index() {
  return (
    <div>
      <MyContent.Provider value="张三">//要传递的值
        <Head />
      </MyContent.Provider>
    </div>
  )
}

4.子组件

import React,{ useContext } from 'react'
import MyContent from '../context'
export default function Head() {
    const name = useContext(MyContent)//使用usecontext接收
    return (
        <div>
            {name}
        </div>
    )
}

二.类组件context传值方法

1.在src在创建一个context.js文件
在这里插入图片描述
2.在context.js文件写如下代码

import React from 'react'
const MyContent = React.createContext()
export default MyContent

3.父组件

import React, { Component } from 'react'
import Head from './Head'
import MyContent from '../context'
export default class index extends Component {
  render() {
    return (
      <div>
        <MyContent.Provider value="张三">
          <Head></Head>
        </MyContent.Provider>
      </div>
    )
  }
}

4.子组件

import React, { Component } from 'react'
import MyContent from '../context'
export default class Head extends Component {
    static contextType = MyContent
    render() {
        //导入创建的context 并使用静态类方法contextType接收
        console.log(this.context);//张三        
        return (
            <div>

            </div>
        )
    }
}

三.Consumer 函数组件,类组件都可以

类组件

1.前两步跟上面一样,创建一个context.js文件,并写下上面的代码
2.父组件

import React, { Component } from 'react'
import Head from './Head'
import MyContent from '../context'
export default class index extends Component {
  render() {
    return (
      <div>
        <MyContent.Provider value="张三">
          <Head></Head>
        </MyContent.Provider>
      </div>
    )
  }
}

3.子组件

import React, { Component } from 'react'
import MyContent from '../context'
export default class Head extends Component {
    render() {
        return (
            <div>
                <MyContent.Consumer>
                    {name => { return <p>函数组件中的name: {name}</p> }}
                </MyContent.Consumer>
            </div>
        )
    }
}

函数组件

1.前两步跟上面一样,创建一个context.js文件,并写下上面的代码
2.父组件

import React from 'react'
import MyContent from '../context'
import Head from "./Head"
export default function index() {
  return (
    <div>
      <MyContent.Provider value="张三">
        <Head />
      </MyContent.Provider>
    </div>
  )
}

3.子组件

import React,{ useContext } from 'react'
import MyContent from '../context'
export default function Head() {
    return (
        <div>
            <MyContent.Consumer>
                {name => { return <p>函数组件中的name: {name}</p> }}
            </MyContent.Consumer>
        </div>
    )
}
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值