this.setState不是函数

this.setState不是函数,第1张

this.setState不是函数

您正在丢失React类

this
上下文绑定它,并将其也绑定到异步回调函数中。

constructor(props){    super(props);    console.log("search box imported");    this.state = {        results:[]    };    this.searchGif = this.searchGif.bind(this);}searchGif(event) {    // ... pre here    xhr.onreadystatechange = () => {    // ... pre here        this.setState();    }}

关于箭头功能的很棒的事情是它们为您绑定了上下文,并且语法也很棒。缺点是浏览器支持。确保您具有polyfil或编译过程以将其编译为ES5语法,以实现跨浏览器性能。

如果您不能执行任何一项 *** 作,则只需在异步

onreadystatechange
函数外部为此上下文创建一个阴影变量,然后使用它代替即可
this


编辑

如今,大多数编译器都使用箭头处理类的绑定方法(无需指定babel转换…等),您也可以通过这种方式分配状态,而无需构造函数

export default class SearchBox extends Component {  state = {     results: []  }  searchGif = (event) => {    // ... pre here    xhr.onreadystatechange = () => {    // ... pre here        this.setState();    }  }  render() {    // ...  }}


欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/zaji/5614943.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-12-15
下一篇 2022-12-15

发表评论

登录后才能评论

评论列表(0条)

保存