设置国家问题

时间:2017-07-12 11:49:35

标签: json reactjs

我似乎正在努力解决有关设置国家的简单问题。我正在学习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}}

真的很感激任何帮助。

2 个答案:

答案 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});
  })
}