react Hook useContext()
- useContext
接收一个上下文对象(React.createContext的返回值,可以理解为全局比变量)并返回该上下文的当前值。当前的上下文值由上层组件中距离当前组件最近的属性<MyContext.Provider>决定value。
当上层最近<MyContext.Provider>更新时,该 Hook 会触发重渲染,并使用最新提交给MyContext提供者的上下文value。即使祖先使用React.memo或使用组件,也会在其自身shouldComponentUpdate组件使用useContext时重新渲染。
- 使用方法:
- 创建createContex。
const context = createContext(null);
- 使用context.Provider包裹根组件,在value中传入值。
function A () {
const [count,setCount] = useState(0)
return(
// 指定上下文使用范围,使用provider,并传入读数据和写入据
<context.Provider value={{count, setCount}}>
这是A组件
<B></B>
</context.Provider>
)
}
- 使用useContext接受上下文(上下文可以理解为全局变量),这样子组件就可以使用value中共享的值。
function C () {
const { count, setCount }= useContext(context)
return(
<div>
这是C组件: {count}
<button onClick={() => { setCount( count 1 )}}>-</button>
</div>
)
}
- 完整试例
import React, { createContext, useContext, useReducer, useState } from 'react'
// 创造一个上下文
const context = createContext(null);
function A () {
const [count, setCount] = useState(0)
return(
// 指定上下文使用范围,使用provider,并传入读数据和写入据
<context.Provider value={{count, setCount}}>
这是A组件
<B></B>
</context.Provider>
)
}
function B () {
return(
<div>
这是B组件
<C></C>
</div>
)
}
function C () {
const { count, setCount }= useContext(context)
return(
<div>
这是C组件: {count}
<button onClick={() => { setCount( count 1 )}}>-</button>
</div>
)
}
这篇好文章是转载于:学新通技术网
- 版权申明: 本站部分内容来自互联网,仅供学习及演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,请提供相关证据及您的身份证明,我们将在收到邮件后48小时内删除。
- 本站站名: 学新通技术网
- 本文地址: /boutique/detail/tanhgbjhha
系列文章
更多
同类精品
更多
-
photoshop保存的图片太大微信发不了怎么办
PHP中文网 06-15 -
Android 11 保存文件到外部存储,并分享文件
Luke 10-12 -
word里面弄一个表格后上面的标题会跑到下面怎么办
PHP中文网 06-20 -
《学习通》视频自动暂停处理方法
HelloWorld317 07-05 -
photoshop扩展功能面板显示灰色怎么办
PHP中文网 06-14 -
微信公众号没有声音提示怎么办
PHP中文网 03-31 -
excel下划线不显示怎么办
PHP中文网 06-23 -
怎样阻止微信小程序自动打开
PHP中文网 06-13 -
excel打印预览压线压字怎么办
PHP中文网 06-22 -
TikTok加速器哪个好免费的TK加速器推荐
TK小达人 10-01