Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/reactjs/27.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript React JS未在FileReader内的事件后更改状态_Javascript_Reactjs - Fatal编程技术网

Javascript React JS未在FileReader内的事件后更改状态

Javascript React JS未在FileReader内的事件后更改状态,javascript,reactjs,Javascript,Reactjs,我一直试图将通过输入标记本地上传的.txt文件的内容指定为状态。我使用了文件阅读器,但是尽管文件的内容是打印的,但状态并没有根据React-dev工具而改变 代码如下: handleFile = (file) => { var fileReader = new FileReader() fileReader.readAsText(file) fileReader.onloadend = function (e) { var content = e.target.result con

我一直试图将通过输入标记本地上传的.txt文件的内容指定为状态。我使用了文件阅读器,但是尽管文件的内容是打印的,但状态并没有根据React-dev工具而改变

代码如下:

handleFile = (file) => {
var fileReader = new FileReader()
fileReader.readAsText(file)
fileReader.onloadend = function (e) {
  var content = e.target.result
  console.log(content)
  this.setState={
    text: content
  }

}
正在此处调用函数handleFile:

<input type="file" accept='.txt' className="custom-file-input" id="customFile"
onChange={e => this.handleFile(e.target.files[0])} />
this.handleFile(e.target.files[0])}/>
非常感谢

请尝试
此.setState({text:content})
而不使用=
还应使用箭头函数,因为在常规函数中无法识别此函数。setState是一种方法,因此要使用此函数,应键入如下内容:

this.setState({key:value})
但这是行不通的,因为代码中的“this”是指向fileReader的链接,您需要做出反应。尝试使用箭头功能抛出正确的“this”:


非常感谢,在调用setState时没有注意到错误,也感谢您解释此操作的上下文!提示:
content=wait file.text()
fileReader.onloadend = (e)=> {
var content = e.target.result
console.log(content)
this.setState({
  text: content
})
}