javascript - 上下文 API 反应功能组件
问题描述
由于我是 react 新手,我一直在寻找在我的 react 应用程序中使用上下文 api 的方法,但找不到在功能组件中使用上下文 api 的方法,他们中的大多数人在类组件中使用它。对不起我的问题...
//这是我的上下文
import React,{ createContext, Component } from 'react';
export const ProductContext = createContext();
class ProductContextProvider extends Component {
state = {
light: 'a',
dark: 'b'
}
render() {
return(
<ProductContext.Provider value={{...this.state}}>
{this.props.children}
</ProductContext.Provider>
);
}
}
export default ProductContextProvider;
解决方案
使用 React 16.8
,我们得到了一个叫做 Hooks 的东西。钩子允许开发人员在功能组件中模仿类组件的功能。
这些钩子之一是useContext
允许您将功能组件连接到上下文的钩子。
const value = React.useContext(MyContext);
从文档中:
接受一个上下文对象(从 中返回的值
React.createContext
)并返回该上下文的当前上下文值。当前上下文值由<MyContext.Provider>
树中调用组件上方最近的值 prop 确定。当最近
<MyContext.Provider>
的组件更新时,此 Hook 将触发重新渲染,并将最新的上下文值传递给该 MyContext 提供程序。
推荐阅读
- r - 具有两个循环和存储结果的 R 并行编程
- java - 在 wso2 EI 中为多个 salesforce 操作建立单个 salesforce 连接
- laravel - SQLSTATE [23000]:违反完整性约束:1048 列“restaurant_id”不能为空
- azure - azure python sdk方法中的custom_headers是什么?
- java - 从所有 Cucumber 功能和场景中获取测试树?
- python-3.x - 在 Python/Kivy 中更改设备壁纸
- python - 如何使用 django allauth 在电子邮件中添加图像
- java - 如何使用 Selenium webdriver java 使用 DOM 定位器来定位 Web 元素
- node.js - AWS Lambda + 自定义授权方 + JWT + 黑名单令牌
- vhdl - VHDL正确停用组件