React Uncaught TypeError:this.setState 不是函数

毛球514

我正在使用属性初始值设定项。这是我的状态。

 state = {
 status: 'Simon Says!',
 compArr: [],
 color: 'red',
 userArr: []
};

这是我的钢笔

我在这里打电话给国家

game = (event) => {
 let compArr = this.state.compArr;
 for (let i = 0; i < compArr.length; i++) {
  (function(i) {
    setTimeout(function() {
      switch (compArr[i]) {
        case 1:
          this.setState({
            color: 'green'
          });
          break;
        case 2:
          this.setState({
            color: 'red'
          });
          break;
        case 3:
          this.setState({
            color: 'yellow'
          });
          break;
        case 4:
          this.setState({
            color: 'blue'
          });
          break;
      }
    }, 1000 * i);
  }(i))
}
};

我收到以下错误

未捕获的类型错误:this.setState 不是函数

我如何在 ES2015+ 中解决这个问题?

舒巴姆·哈特里

问题是这不是在 setTimeout 函数中引用正确的上下文,您可以按照以下方式进行

game = (event) => {
 var self = this;
 let compArr = this.state.compArr;
 for (let i = 0; i < compArr.length; i++) {
  (function(i) {
    setTimeout(function() {
      switch (compArr[i]) {
        case 1:
          self.setState({
            color: 'green'
          });
          break;
        case 2:
          self.setState({
            color: 'red'
          });
          break;
        case 3:
          self.setState({
            color: 'yellow'
          });
          break;
        case 4:
          self.setState({
            color: 'blue'
          });
          break;
      }
    }, 1000 * i);
  }(i))
}
};

代码笔

您可以使用数组来简化您的逻辑

game = (event) => {
 var self = this;
 let compArr = this.state.compArr;
 var color = ["green", "red", "yellow", "blue"];
 for (let i = 0; i < compArr.length; i++) {
  (function(i) {
    setTimeout(function() {
      self.setState({color: color[compArr[i] - 1]});
    }, 1000 * i);
  }(i))
}
};

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

× React -TypeError: _this.setState 不是函数

来自分类Dev

React Flux Uncaught TypeError:_LocalityStore2.default.setSelectedLocality不是一个函数

来自分类Dev

Twitter Uncaught TypeError:undefined不是函数

来自分类Dev

Javascript Uncaught Typeerror - 不是构造函数

来自分类Dev

React Native - this.setState 不是函数

来自分类Dev

如何在React中动态填充选择选项的setState?TypeError:this.state.schoolName.map不是函数

来自分类Dev

未处理的承诺拒绝:TypeError:undefined 不是评估“departureloc.map”的函数,当在 React Native 中映射 setState 时发生

来自分类Dev

TypeError:未定义不是函数('..._ this.setState ...')

来自分类Dev

Uncaught TypeError:使用jQuery时undefined不是函数

来自分类Dev

Uncaught TypeError:undefined不是函数-猫头鹰轮播

来自分类Dev

Chargebee: Uncaught TypeError: this.page.urlFetcher(...).then 不是函数

来自分类Dev

React 中的 setState 导致 Uncaught ReferenceError

来自分类Dev

如何修复“react-dom.development.js:287 Uncaught TypeError:无法读取未定义的属性‘setState’”

来自分类Dev

TypeError:Object(...)不是React.js函数

来自分类Dev

React setState不是添加JSON时的函数吗?

来自分类Dev

this.setState 不是一个函数 React

来自分类Dev

React组件TypeError中的递归函数:*不是函数

来自分类Dev

React JS错误TypeError:React.memo不是函数

来自分类Dev

jQuery函数偏执行/ Uncaught TypeError:未定义不是函数

来自分类Dev

无法为错误`Uncaught TypeError:_.lpad不是函数`调用Underscore.String函数`lpad`

来自分类Dev

React setState 不是设置状态

来自分类Dev

React setState 函数的小问题

来自分类Dev

react的map函数中的setState

来自分类Dev

反应未捕获的TypeError:this.setState不是一个函数

来自分类Dev

ReactJS:未捕获的TypeError:this.setState不是一个函数

来自分类Dev

如何修复TypeError _interopRequireDefault不是Create React App中的函数

来自分类Dev

TypeError:records.map不是React中的函数

来自分类Dev

TypeError:React.renderToStaticMarkup不是一个函数

来自分类Dev

React keycloak TypeError:kc.updateToken(...)。成功不是函数

Related 相关文章

  1. 1

    × React -TypeError: _this.setState 不是函数

  2. 2

    React Flux Uncaught TypeError:_LocalityStore2.default.setSelectedLocality不是一个函数

  3. 3

    Twitter Uncaught TypeError:undefined不是函数

  4. 4

    Javascript Uncaught Typeerror - 不是构造函数

  5. 5

    React Native - this.setState 不是函数

  6. 6

    如何在React中动态填充选择选项的setState?TypeError:this.state.schoolName.map不是函数

  7. 7

    未处理的承诺拒绝:TypeError:undefined 不是评估“departureloc.map”的函数,当在 React Native 中映射 setState 时发生

  8. 8

    TypeError:未定义不是函数('..._ this.setState ...')

  9. 9

    Uncaught TypeError:使用jQuery时undefined不是函数

  10. 10

    Uncaught TypeError:undefined不是函数-猫头鹰轮播

  11. 11

    Chargebee: Uncaught TypeError: this.page.urlFetcher(...).then 不是函数

  12. 12

    React 中的 setState 导致 Uncaught ReferenceError

  13. 13

    如何修复“react-dom.development.js:287 Uncaught TypeError:无法读取未定义的属性‘setState’”

  14. 14

    TypeError:Object(...)不是React.js函数

  15. 15

    React setState不是添加JSON时的函数吗?

  16. 16

    this.setState 不是一个函数 React

  17. 17

    React组件TypeError中的递归函数:*不是函数

  18. 18

    React JS错误TypeError:React.memo不是函数

  19. 19

    jQuery函数偏执行/ Uncaught TypeError:未定义不是函数

  20. 20

    无法为错误`Uncaught TypeError:_.lpad不是函数`调用Underscore.String函数`lpad`

  21. 21

    React setState 不是设置状态

  22. 22

    React setState 函数的小问题

  23. 23

    react的map函数中的setState

  24. 24

    反应未捕获的TypeError:this.setState不是一个函数

  25. 25

    ReactJS:未捕获的TypeError:this.setState不是一个函数

  26. 26

    如何修复TypeError _interopRequireDefault不是Create React App中的函数

  27. 27

    TypeError:records.map不是React中的函数

  28. 28

    TypeError:React.renderToStaticMarkup不是一个函数

  29. 29

    React keycloak TypeError:kc.updateToken(...)。成功不是函数

热门标签

归档