以下代码为我返回错误 未捕获(承诺)TypeError:无法读取未定义的属性“ setState”
我是新来的反应者,这似乎很基础。任何建议,我可能做错了什么。从json结果中,我想将所有名称存储在数组中。
import React, { Component } from "react";
class Search extends Component {
constructor(props) {
super(props);
this.state = {
list: [],
}
}
Search() {
fetch("http://url/getSearchResults")
.then(res => res.json())
.then(
(res) => {
this.setState({
list: res.data.name
})
})
}
答案 0 :(得分:1)
这是React中类的一个非常常见的问题-有两种方法可以解决此问题:
constructor(props) {
super(props);
this.state = {
list: [],
}
this.Search = this.Search.bind(this);
}
search = () => { ... }
有关更多信息,请参见this post。
注意:使用componentDidMount()
很有用,如果您尝试在挂载上进行访存调用-上面的答案解决了this
未被定义的问题。您看到的错误。
答案 1 :(得分:0)
将componentDidMount()
添加到Search()
,在安装组件(插入树中)后立即调用它。需要DOM节点的初始化应该放在这里。这是从远程端点加载数据的好地方。