【问题标题】:How to use FileReader with React? (getting a strange error)如何在 React 中使用 FileReader? (得到一个奇怪的错误)
【发布时间】:2019-01-05 08:44:56
【问题描述】:

我已经尝试过

的解决方案

How to use FileReader in React?

并得到与我的代码相同的错误。

我正在尝试在反应组件中使用FileReader()

class Home extends Component {

  onChange(e) {
    let files = e.target.files;
    console.log(files);
    let reader = new FileReader();
    reader.readAsDataURL(files[0]);

    reader.onload = e => {
      console.log(e.target.result);
    };
  }

  render() {
    return (
        <div onSubmit={this.onFormSubmit}>
          <h1>Upload File Here</h1>
          <input type="file" name="file" onChange={e => this.onChange(e)} />
        </div>

export default Home;

console.log(files) 返回上传的文件(如果我在没有其余 onChange() 代码的情况下运行它)。当我运行整个过程时,我收到一条错误消息:

Error: cannot read as File: {}reader.readAsDataURL(files[0]);

我完全按照本教程进行操作,并且对他们来说效果很好。有什么想法吗?!

https://www.youtube.com/watch?v=sp9r6hSWH_o&t=50s

【问题讨论】:

    标签: reactjs filereader


    【解决方案1】:

    试试这个

    改变

       onChange(e) {
            let files = e.target.files;
             console.log(files);
             let reader = new FileReader();
             reader.readAsDataURL(files[0]);
    
              reader.onload = e => {
                  console.log(e.target.result);
              };
         }
    

        onChange = e => {
             let files = e.target.files;
             console.log(files);
             let reader = new FileReader();
             reader.onload = r => {
                  console.log(r.target.result);
              };
             reader.readAsDataURL(files[0]);
         }
    

    【讨论】:

    • 非常感谢您花时间帮助我。不幸的是,这段代码产生了同样的错误。我将在一个新的 create-react-app 中尝试它,看看它是否有什么不同。
    • 当我创建一个新应用程序时它起作用了。很奇怪!再次感谢您抽出宝贵时间:)
    • 我认为绑定是问题所在。你的意思是你的旧代码有效吗?
    • 是的,当我创建新的 react 应用程序时,这两个代码都有效。接受您的回答,因为如果其他可怜的灵魂出现,这也是解决此问题的方法..
    猜你喜欢
    • 1970-01-01
    • 2022-01-25
    • 1970-01-01
    • 2020-12-01
    • 1970-01-01
    • 2020-01-05
    • 1970-01-01
    • 1970-01-01
    • 2019-03-29
    相关资源
    最近更新 更多