当前位置: 首页 > 面试题库 >

反应TypeError this._test不是函数

吴胜
2023-03-14
问题内容

自从我对JavaScript和React感到陌生以来,我确实在找出正确的语法方面遇到了问题。

这是我的问题:

_handleDrop(files)应该调用该函数,_validateXML(txt)但不会。我收到此错误Uncaught TypeError: this._validateXML is not a function,无法找出原因。回调_handleDrop(files)可以正常工作。

当我尝试这种语法_validateXML:function(txt)时,在编译时会立即出现错误。那是因为电子书吗?

import React from 'react';
import './UploadXML.scss';
import Dropzone from 'react-dropzone';
import xml2js from 'xml2js';

export default class UploadXML extends React.Component {

  constructor() {
    super();
    this._validateXML = this._validateXML.bind(this);
  }

  _validateXML(txt) {
    console.log('Received files: ', txt);
  }

  _handleDrop(files) {
    if (files.length !== 1) {
      throw new Error("Please upload a single file");
    }
    var file = files[0];

    console.log('Received files: ', file);

    this._validateXML(file);
  }

  render() {
    return (
      <div>
            <Dropzone onDrop={this._handleDrop} multiple={false}>
              <div>Try dropping some files here, or click to select files to upload.</div>
            </Dropzone>
      </div>
    );
  }
}

问题答案:

当您使用ES6类而不是React.createClass时,它不会自动绑定 this

之所以:

React.createClass具有内置的魔术功能,可以自动为您绑定所有方法。对于不习惯其他类中此功能的JavaScript开发人员,这可能会有些混乱,或者当他们从React移至其他类时,可能会造成混乱。

因此,我们决定不将此内置到React的类模型中。如果需要,您仍然可以在构造函数中显式预绑定方法。

另请参阅:http
:
//facebook.github.io/react/blog/2015/01/27/react-v0.13.0-beta-1.html#autobinding

在这种情况下,您可以将其绑定到_handleDrop函数,例如:

<Dropzone onDrop={this._handleDrop.bind(this)} multiple={false}>

您也可以从构造函数中删除函数的分配。



 类似资料:
  • 问题内容: 我是React的新手,正在尝试编写使用API​​的应用程序。我不断收到此错误: TypeError:this.setState不是一个函数 当我尝试处理API响应时。我怀疑此绑定有问题,但我不知道如何解决它。这是我组件的代码: 问题答案: 回调是在不同的上下文中进行的。您需要这样做才能在回调内部进行访问: 编辑:看起来您必须同时绑定和调用:

  • 问题内容: 有人可以解释一下为什么 this.setState 不是函数吗? 我不明白为什么我的代码有错误 谢谢 问题答案: 这是问题。使用。

  • 我正在用Bootstrap 4做一个react项目。引导程序已通过CDN导入。 我想要的是在满足条件的情况下显示/隐藏一个模态。我已经导入了jquery 在组件中 但是在执行上面的行时,它会显示一个错误,如 我读到了这个错误,它说可能是因为jquery与CDN和NPM一起导入了两次。我不确定原因是什么。但我也尝试过从一个方法导入jquery,但它不起作用。有什么建议吗?

  • 我正在尝试使用react钩子创建一个悬停以显示div,我遇到了以下问题: 第69:31行:在函数“renderHideOptionalClauseTrigger”中调用React钩子“useState”,该函数既不是React函数组件,也不是自定义React钩子函数React钩子/钩子规则 搜索关键字以了解有关每个错误的更多信息。 以下是我的代码库:

  • 问题内容: 当前组件的值为false。捕获滚动​​事件时,它会查看,如果有,它会做一些事情。 我想在动作再次发生之前有某种静态延迟,这就是为什么将内部函数设置为并将阻塞当前方法的进一步逻辑的原因,直到返回到。 但在当前时刻出现以下错误 遗漏的类型错误:this.setState不是一个函数 时被内部调用。 问题答案: 您正在失去上下文。使用箭头功能作为保留适当执行上下文的简单方法: 请记住,除非您