我似乎正在努力解决有关设置国家的简单问题。我正在学习React所以我在几个步骤中做到了这一点。最初我设置我的组件,因此他们使用props设置字段(例如this.propsoverview [0] .ProfileImg),它是从概览窗格传递状态的,最初使用componentWillMount中的this.SetState调用设置,其中数据是从静态文件。
接下来,我致力于添加一个以更动态的方式提取数据的函数(即getPatient函数)。我从componentWillMount调用此函数,我可以执行console.log将JSON作为字符串输出(使用JSON.stringify)。所以我知道正在返回JSON。
我正在努力的是使用我的getPatient调用中返回的JSON在componnetWillMount中设置State。我得到错误Uncaught(在prmise中)类型错误:无法在我的代码的第4行读取未定义的属性'setState'(即this.setState ...)
以下是我的代码......
{{1}}
真的很感激任何帮助。
答案 0 :(得分:0)
代码中的this
绑定在promise中,您需要绑定this
才能获得this
范围的响应。
getPatient().then(function(result) {
//console.log(JSON.stringify(result));
this.setState({PATIENT: result})
}.bind(this))
答案 1 :(得分:0)
您收到cannot call setState of undefined
,因为您使用常规function
作为回调而不是箭头功能(() => {}
)。使用常规函数时,this
参数(上下文)设置为调用函数,而不是您可能想到的(所谓的词法this
)。
将您的.then
回调更改为箭头功能,您应该做得很好:
componentWillMount() {
getPatient().then((result) => {
this.setState({PATIENT: result});
})
}