您正在丢失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() { // ... }}
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)