Javascript React-setState函数的一个小问题

Javascript React-setState函数的一个小问题,javascript,reactjs,Javascript,Reactjs,事实上,我不知道为什么这不起作用,因为我花了比平时多得多的时间来修理它。问题是我正在使用axios进行REST调用,以获取要渲染的数据。在处理响应的块内,即使我能够检索数据,“this”对象以某种方式未能引用正确的对象,我也会得到一个错误。我不知道为什么会发生这种情况,但对此的任何帮助都将不胜感激 在下面发布我的代码片段。我已尝试将此上下文保存在axios调用范围之外,并使用了新变量,但这也无济于事。这是我在控制台中得到的错误 TypeError:_this2.setState不是函数 impo

事实上,我不知道为什么这不起作用,因为我花了比平时多得多的时间来修理它。问题是我正在使用axios进行REST调用,以获取要渲染的数据。在处理响应的块内,即使我能够检索数据,“this”对象以某种方式未能引用正确的对象,我也会得到一个错误。我不知道为什么会发生这种情况,但对此的任何帮助都将不胜感激

在下面发布我的代码片段。我已尝试将此上下文保存在axios调用范围之外,并使用了新变量,但这也无济于事。这是我在控制台中得到的错误

TypeError:_this2.setState不是函数

import React,{Component}来自'React';
从“axios”导入axios;
导入“/RouteList.css”;
类RouteList扩展组件{
构造函数(){
超级();
this.setState={
所有路由:{},
所选路由:{}
};
}    
componentDidMount(){
常数=this;
//检索SF Muni路线列表
axios.get()http://webservices.nextbus.com/service/publicJSONFeed?command=routeList&a=sf-穆尼)
。然后(响应=>{
控制台日志(响应);
setState({allRoutes:response.data.routes});
})
.catch((错误)=>{
console.log(错误);
});            
}
render(){
返回(
{/*呈现数据的TODO代码。*/}
);
}
}
导出默认路由列表`

问题是您正在覆盖构造函数中的
setState
方法,请尝试如下设置初始状态:

this.state = {
    allRoutes: {},
    selectedRoutes: {}
};

另外,当使用箭头函数时,无需保存父作用域,该函数将在与外部函数相同的作用域下运行。

问题是您正在覆盖构造函数中的
setState
方法,请尝试如下设置初始状态:

this.state = {
    allRoutes: {},
    selectedRoutes: {}
};

另外,当使用箭头函数时,不需要保存父作用域,该函数将在与外部函数相同的作用域下运行。

非常感谢。我在构造函数中执行setState真是太愚蠢了。呵呵呵呵,当我长时间工作时,这种情况会发生:)也许你需要一段时间休息,还有一件小事——如果你最终调用了setState,请确保你像这样调用它。setState({foo:bar})而不是试图将setState设置为等于某个值,这就是通过使用'this.setState={foo:bar}'来实现的。我在构造函数中执行setState真是太愚蠢了。呵呵呵呵,当我长时间工作时,这种情况会发生:)也许你需要一段时间休息,还有一件小事——如果你最终调用了setState,请确保你像这样调用它。setState({foo:bar})而不是试图将setState设置为等于某个值,这就是您通过使用'this.setState={foo:bar}'实际执行的操作