react-context-访问、修改操作

上篇文章介绍了context(上下文对象),这边文章接着上篇文章总结利用context实现数据修改

引言:

1、我们使用context上下文对象来管理公共状态,那么我们只能读状态,如何更新?
2、要实现-----在一个祖先元素上挂载context对象,在子组件上试图去读取修改,其他组件也可以变化
3、创建一个组件,在全局里定义一个状态,并修改这个状态

写法:

1、首先创建一个组件,供其他组件使用

Count组件如下,将组件可以放到子组件里面

// 我们使用context上下文对象来管理公共状态,那么我们只能读状态,如何更新?
// 要实现-----在一个祖先元素上挂载context对象,在子组件上试图去读取修改,其他组件也可以变化
// 创建一个组件,在全局里定义一个状态,并修改这个状态
// Count组件如下,将组件可以放到子组件里面
import React, {
   Component, createContext} from 'react'
// App.js中包裹写法
// 只要使用包裹的方式,方法二中的默认值就不生效了
const {
   
    Provider,
    Consumer:CountConsumer
} = createContext()
// App.js中不包裹写法(不使用)
// 如果不定义根的Provider,那么就可以在创建Context的时候可以给个初始值,这样虽然报错了,但是脱离了class,跟class一点关系都没有了
// const {
   
//     Provider,
//     Consumer:CountConsumer
// } = createContext({
   
//     count: 100,
//     increment: () => {
   console.log(0)},
//     decrement: () => {
   console.log(1)}
// })

// import 起别名
// import {
   x as abc} from
class CountProvider extends Component {
   
    constructor(props) {
   
        s
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值