- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
{ e.preventDefault(); const { audioBlob } = t-6ren">
我在 React 类组件中定义了一个方法,如下所示
onSaveAudio = (e) => {
e.preventDefault();
const { audioBlob } = this.state;
let reader = new FileReader();
reader.onloadend = function () {
const base64 = reader.result;
const bstr = base64.split(',')[1];
console.log(bstr);
console.log('this.props', this.props);
this.props.onSaveAudio(bstr);
}
reader.readAsDataURL(audioBlob);
}
在
console.log('this.props', this.props)
行,它正在打印“未定义”;在
this.props.onSaveAudio
行,抛出错误:
Uncaught TypeError: Cannot read property 'onSaveAudio' of undefined atFileReader.reader.onloadend (recorder.js:300)
this.props.onSaveAudio
在“onloadend”函数中,因为如果我在“onloadend”之外调用它,我无法在阅读完成并且“reader.result”准备好之后调用到,并且“bstr”将错误地解析为未定义定时;但如果我调用
this.props.onSaveAudio
在“onloadend”中,则无法识别“this”。似乎进退两难。
this.props.onSaveAudio
在“onloadend”函数完成执行后,在“onloadend”函数之外调用。
最佳答案
我发现的一种方法是在定义“reader.onloadend”时使用箭头函数。
reader.onloadend = () => {
const base64 = reader.result;
const bstr = base64.split(',')[1];
console.log(bstr);
console.log('this.props', this.props);
this.props.onSaveAudio(bstr);
}
this.props 将在这种情况下定义
关于javascript - react : FileReader onloadend doesn't recognize "this" if defined in a component method,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/68644239/
是否有一个事件会在 Node.js 的 XMLHttpRequest 模块成功或出错时运行?根据docs , onloadend 事件应该在错误和成功时触发,但它仅在成功时运行。例如: var XML
我正在尝试处理通过 html5 dropzone/fileinput 创建的文件列表。 files[] 实际上不是一个 FileList,而是一个包含 File 对象的数组。 只要 files[] 只
使用 CEF 浏览器,我尝试 Hook OnLoadEnd 事件以遍历 DOM 树。 出于某种奇怪的原因,我调用了 VisitDom 2 次。 procedure TForm1.FormCreate(
我正在尝试测试 input type=file组件,使用 react 测试库。 该组件是标准元素,具有以下处理图像提交的函数: export default function ImageUpload(
HTML 代码: Loading Javascript代码: function showProgressBar(div) { console.log("Load begin"); $(div).fa
我正在使用 phonegap 拍照并将其放入 img 容器中。 navigator.camera.getPicture(onSuccess, onFail); var onSuccess = fun
我正在尝试制作一个小片段来在上传图像之前预览图像: $.fn.previewImg=function($on){ var input = this; try{ if (this.is("inp
我想在 myVideo.mp4 完全加载后立即将 videoLoaded 分配给 true。我可以在代码的最后几行执行此操作(这是我们的 promise ): preload.fetch([
我正在尝试在 react native 上显示来自 giphy api 的 GIF。 Gif 需要时间在屏幕上显示,所以我想在中间显示一个微调器。 onLoadEnd 事件似乎永远不会在 Image
您好我正在尝试加载远程图像。 onLoadStart 是命中但不是 onLoadEnd ` {this.state.loading ? (
我正在尝试使用 cordova-file-plugin 读取本地文件。目前我能够读取本地目录的内容并选择一个文件。但是我无法获取文件的内容。 这是我从列表中选择文件后单击按钮调用的函数: import
我在 React 类组件中定义了一个方法,如下所示 onSaveAudio = (e) => { e.preventDefault(); const { audioBlob } = t
在下面的代码中,我需要读取变量 ext 的值(在函数 reader.onloadend 内定义)在函数 xhr.onreadystatechange 中。现在正在返回undefined 。有什么想法可
我正在尝试读取用户在 React 组件中上传的文件,并将 React 组件的状态设置为文件内容。但是,在 read.onloadend 回调函数中,我无法通过 this 访问状态。 这是实际的表单部分
我正在将应用程序从 phonegap 2.* 更新到 cordova 3.4现在一切顺利,只有文件下载不工作。 我需要从 Internet 下载文件(主机编辑)并将其存储为 JSON 文件,以便稍后处
我是一名优秀的程序员,十分优秀!