reactjs - 从子组件更改上下文文件中的状态值?
问题描述
试图理解上下文 api,我理解道具是传下来的。我正在尝试将我的 Context 文件值的状态更改为另一个数字,例如 50。
创建的上下文文件
import React, { useState, createContext } from "react";
export const PointsContext = createContext();
export const PointsProvider = (props) => {
const [points, setPoints] = useState(0);**<--WANT TO CHANGE THIS**
return <PointsContext.Provider value={points}>{props.children}</PointsContext.Provider>;
};
在 App.js 中的 Provider 中包装所有内容
import {PointsProvider } from "./PointsContext";
<PointsProvider>
<ChildComponent>
</PointsProvider>
“ChildComponent”是提供的上下文
import React, { useState, useEffect, useContext } from "react";
import { PointsContext } from "../PointsContext";
const value = useContext(PointsContext);
return(
<Button title="ChangeNumber" onPress={() => Change value to 50 }/>
)
解决方案
我想通了,而不是导入
const value = useContext(PointsContext);
import this,它可以访问上下文文件中的 setState。只要您将其导入任何屏幕,您就可以访问该 useState 来更改内容。
const [points, setPoints] = useContext(PointsContext);
其余的可能会像这样!
<Button title="ChangeNumber" onPress={() => setPoints(50)}/>
<Text>{points}</Text>
本教程非常感谢 devEd,他是我的最爱之一! 开发 Youtube React 状态
推荐阅读
- javascript - antd中如何改变动态表单域的值?
- javascript - 从回调 API 调用异步代码安全吗?
- azure - 如何使用 Azure 认知搜索搜索字符串的一部分
- visual-studio-code - 只显示父文件夹名称?
- c++ - C ++写入路径名中包含不需要的空字符的文件
- python-3.x - 如何使用属性装饰器设置基类中定义的超属性?
- java - @KafkaHandler 接收良好,但不使用 @SendTo 发送回复。怎么了?
- firebase - 谁能帮我解决这个颤振错误,我正在学习颤振?
- python - 用Seaborn计算直方图下的面积
- sql - 检查字符串是否包含特定数字