setState取决于Object.hasOwnProperty

时间:2016-12-22 20:42:10

标签: reactjs

使用外部API,根据要求我得到带有错误的对象或带有当前和预测的对象。

  1. 对象{error}

  2. 对象{current,forecast}。

  3. 我想根据我得到的对象来设置State。我试过这个:

    setFetchWeather = data => { const newState = data.hasOwnProperty(data.error) ? {data:[], error:true,loading: false} : {data: data.forecast, error:false, loading:false} this.setState(newState); }

    然后

    {this.state.error ? <span>Error</span> : <span>Not an Error</span>};

    得到这样的错误:

    Cannot read property 'forecastday' of undefined

    我喜欢的是当对象包含当前和预测时收到消息&#34;不是错误&#34;当对象包含错误时,得到一个消息&#34;错误&#34;。

    谢谢!

2 个答案:

答案 0 :(得分:0)

我认为有助于向自己解释问题 它必须是data.hasOwnProperty(&#34;错误&#34;)。

答案 1 :(得分:0)

我不了解你所说的一半,但我认为你想要&#34; hasOwnProperty&#34;触发响应的功能。

You are using the function incorrectly.

if (data.hasOwnProperty("error")) {
  this.setState({ ... });
}

注意键名称周围的引号。