栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

this.setState不是函数

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

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() {    // ...  }}


转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/608810.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号