React / JSX - 在对象

时间:2017-03-27 23:30:13

标签: reactjs react-redux jsx react-redux-form

我是新的反应框架。我正面临一个问题,需要一些帮助。

API调用将导致一个具有多个对象行的对象。 我想在该对象上使用map来渲染div。

export default class SearchResult extends Component {

   static propTypes = {
       courses:React.PropTypes.object, 
   }

  render() {

     ....
     this.props.courses.map( entity => renderEntity(entity));
     ...
  }
}

我有一个错误,说明地图不是属性。在谷歌搜索后我发现对象没有map属性。只有阵列才有。

有人可以帮助我 1)我如何获得地图功能/等效。我想要做的就是为对象中的每个元素渲染一组html标记。这是为了开发搜索结果。 2)我可以将对象转换为数组。这需要吗? 3)if(this.props.courses)总是变为真,因为它已经 proto 初始化。在那种情况下,我将如何检查课程是否真的有数据。 courses.length等没有工作,因为它没有任何长度的属性,也不是一个数组。

Object console log output 注意: - 这是我在stackoverflow中的第一个问题。如果您发现任何错误,请善意忽略。

提前感谢您的帮助。 Sesh

1 个答案:

答案 0 :(得分:1)

不仅仅是React问题,这是纯粹的JS问题。如果你需要循环遍历对象的值,那么像这样的东西应该可以正常工作:

Object.keys(this.props.courses).map(course => renderEntity(this.props.courses[course]))

作为对此类未来问题的建议,请始终开始查看here,在此特定情况下this,是您的问题的理想选择。