如何从我的源中导入.txt文件?

时间:2018-05-26 05:51:15

标签: reactjs

我尝试导入.txt文件以在文本框中显示文本。

我的代码:

import React, { Component } from 'react';
import './LoadMyFile.css';
import myText from './sample.txt';

export default class LoadMyFile extends Component {  
  render() {
    return (
      <div>      
        <button onClick={this.handleClick} className="LoadMyFile" name="button" variant="flat">test string</button>
      </div>
    )
  }  
  handleClick = () => {
    console.log(myText);
  }   
}

但我在控制台中看到:/static/media/sample.f2e86101.txt

这里出了什么问题?

5 个答案:

答案 0 :(得分:6)

我已经解决了我的问题。

  handleClick = () => {

    fetch('/sample.txt')
    .then((r) => r.text())
    .then(text  => {
      console.log(text);
    })  
  } 

Tis链接确实有帮助: Fetch local JSON file from public folder ReactJS

答案 1 :(得分:1)

不想使用提取,因为这使我不得不处理异步响应。我这样解决了我的问题。

  1. 创建了一个单独的.js文件,并将我的文本分配给了一个变量
  2. 导出变量
const mytext = `test
 this is multiline text.
 more text`;

export default mytext ;
  1. 在我的其他组件中,导入文件。
import mytext from './mytextfile.js';
  1. 我现在可以自由地将其分配给变量或在组件中的任何位置使用它。
 const gotTheText = mytext;
 return (<textarea defaultValue={gotTheText}></textarea>);

答案 2 :(得分:1)

这在实践中效果很好:

import textfile from "../assets/NOTES.txt";

function Notes() {
  const [text, setText) = React.useState();
  fetch(textfile)
    .then((response) => response.text())
    .then((textContent) => {
      setText(textContent);
    });
  return text || "Loading...";
}

答案 3 :(得分:0)

我将文本转换为base64,然后将其解码。

const base64textfile ="Asdfsdfsf";
export default base64textfile ;


import { base64decode } from "nodejs-base64";
var decodedText = base64decode(base64textfile);

答案 4 :(得分:-1)

您应该使用json文件:

has_and_belong_to_many

ActiveRecord

成分:

sample.json