Reactjs 将字符串从reader.onload传递给父级

Reactjs 将字符串从reader.onload传递给父级,reactjs,function,object,onload,reader,Reactjs,Function,Object,Onload,Reader,这是我的密码。我试图将treeContent从read.onload函数中传递出去。我不能让它工作 控制台显示:外部未定义索引。html:18 内心世界;index.html:15 <!DOCTYPE html> <html> <head> <title>File reader</title> <meta charset="UTF-8" /> </head> <body> &

这是我的密码。我试图将treeContent从read.onload函数中传递出去。我不能让它工作

控制台显示:外部未定义索引。html:18 内心世界;index.html:15

<!DOCTYPE html>
<html>
<head>
    <title>File reader</title>
    <meta charset="UTF-8" />
</head>

<body>
    <script>
        function read(e) {
            let reader = new FileReader();
            reader.onload = function (e) {
                const treeContent = reader.result;
                window.file = treeContent; 
                console.log('inner ' + window.file);              
            };
            reader.readAsText(e.target.files[0]);
            console.log('outer '+ window.file);
        }
    </script>
    <input type="file" onchange="read(event)" />
</body>
</html>

文件读取器
函数读取(e){
let reader=new FileReader();
reader.onload=函数(e){
const treeContent=reader.result;
window.file=treeContent;
console.log('internal'+window.file);
};
reader.readAsText(e.target.files[0]);
console.log('outer'+window.file);
}

从您发布的内容来看,您似乎从未阅读过任何文件。在代码的某个地方,您应该调用reader.readText(fileToRead)

看看这个简单的最小工作示例:

<!DOCTYPE html>
<html>
<head>
    <title>File reader</title>
    <meta charset="UTF-8" />
</head>

<body>
    <script>
        function read(e) {
            let reader = new FileReader();

            reader.onload = function (e) {
                const treeContent = reader.result;
                console.log(treeContent);
            };
            reader.readAsText(e.target.files[0]);
        }
    </script>
    <input type="file" onchange="read(event)" />
</body>
</html>

使用箭头功能有帮助吗
reader.onload=()=>{…}
Brein,非常感谢。我使用最小工作示例作为模板,将treeContent从read.onload函数中传递出去。它对我仍然不起作用。请帮帮我。您好@shihaifeng。通过阅读您的日志,它看起来正在工作!outer仍然未定义,因为
reader.readAsText(e.target.files[0])
是一个异步方法,因此您只能在onload函数brein中看到结果,非常感谢。如何在onload中访问treecontent的值?我需要将其传递给this.setstate,以便在另一个函数中使用。CuilanI编辑了我的答案,向您展示了我将如何做。欢迎您,如果您能将此问题标记为已解决,将不胜感激:)