javascript - 为什么这个上下文提供者在 react.js 中向消费者发送 null
问题描述
我正在尝试使用上下文,但每次提供者都向消费者发送空对象。请让我知道我的代码哪里出了问题。我想从一个组件向另一个组件发送和声明。他们都不是另一个人的孩子,他们都在组件文件夹下。
下面是创建、使用和消费的过程:
ImageContext.js
import React from 'react';
const ImageContext = React.createContext()
export default ImageContext;
在此函数中 selectedFileName 采用所选文件 ImageUpload.js 的名称
onFileChange = event => {
this.setState({ selectedFile: event.target.files[0] });
this.setState({ selectedFileName: event.target.files[0].name });
};
提供者:
return (
<ImageContext.Provider value={{ this.state.selectedFileName }}>
</div>
<div onClick={this.onNavToEditor}>
{this.listItems()}
</div>
</div>
</ImageContext.Provider >
);
消费者:
return (
<ImageContext.Consumer>
{(value) => (
<ImageEditor
includeUI={{
loadImage: {
path: value.path,
name: value,
},
)}
</ImageContext.Consumer>
);
您可以看到上面的路径和名称正在使用上下文。
为什么提供者将空对象发送给消费者?
我应该在这里提到我已经删除了一些代码部分来缩短它。
解决方案
推荐阅读
- docker - minikube 和 ingress-nginx 没有打开 80 端口
- javascript - 如何使用 highchart 绘制下面的图表?
- node.js - Drchrono 中的授权
- ios - iOS:AppDelegate 方法未调用 SwiftUI 2
- javascript - 闲置并悬停在正在播放的视频上时如何隐藏光标?
- flutter - flutter redux中effect和reducer有什么区别
- oauth-2.0 - Azure AD:应用注册过程是否需要时间来注册自签名证书?
- python - 一个列表,并在键的帮助下用字典中的值替换其元素
- flutter - 是什么导致问题线程 1:EXC_RESOURCE RESOURCE_TYPE_MEMORY(限制=650 MB,未使用=0x0)?
- azure-logic-apps - 使用 SharePoint“使用路径获取文件内容”操作时,从“文件内容”中的 JSON 中提取 $content 值