reactjs 如何在react中读取文本文件

dgenwo3n  于 2023-04-11  发布在  React
关注(0)|答案(4)|浏览(428)

Screenshot1Screenshot2
我想读取react项目中的文本文件,但当我尝试执行和读取时,我在控制台日志中获得了一个HTML示例代码。
这是一个函数:

onclick= () =>{
 fetch('data.txt')
  .then(function(response){
    return response.text();
  }).then(function (data) {
    console.log(data);
  })
};

按钮调用它:

<button onClick={this.onclick}>click string</button>
v2g6jxz6

v2g6jxz61#

简单地尝试下面的代码,你可能会明白

import React, { Component } from 'react';

class App extends Component {

  constructor(props) {
    super(props);
  }

  showFile = async (e) => {
    e.preventDefault()
    const reader = new FileReader()
    reader.onload = async (e) => { 
      const text = (e.target.result)
      console.log(text)
      alert(text)
    };
    reader.readAsText(e.target.files[0])
  }

  render = () => {

    return (<div>
      <input type="file" onChange={(e) => this.showFile(e)} />
    </div>
    )
  }
}

export default App;
j1dl9f46

j1dl9f462#

如果你想先得到一个.txt文件,你必须导入它:

import raw from '../constants/foo.txt';

之后,你可以获取它并将其转换为文本:

fetch(raw)
 .then(r => r.text())
 .then(text => {
  console.log('text decoded:', text);
});
xiozqbni

xiozqbni3#

尝试以下方法:

import text from './data.js'; // The relative path to your File

console.log(text);

创建一个名为data.js的文件,并添加以下内容:

const text = "My Text goes here";

export default text;
3phpmpom

3phpmpom4#

因为React是JavaScript,所以这段代码应该可以工作。
HTML

<input type="file" id="fileInput" onchange="onLoad(event)">

JavaScript

onLoad = function (event){
 var file = fileInput.files[0];
    var textType = /text.*/;
    
    if (file.type.match(textType)) {
        var reader = new FileReader();
        
        reader.onload = function(e) {
            var content = reader.result;
            // Here the content has been read successfuly
            alert(content);
        }
        
        reader.readAsText(file);    
    } 
}

事件这将工作,如果直接在页面上加载如果你想加载的数据。

import { text } from './data.txt'; // Relative path to your File
console.log(text);

相关问题