从未到达我的函数调用 - ReactJs 0.12.0

时间:2015-03-20 23:37:57

标签: javascript jquery html css reactjs

我有一个jsbin除了一些显示失败的get请求之外不会引发控制台错误。除此之外,特定于我的代码没有错误,但它从未到达特定点。

The following Jsbin有一个问题。该代码适用于所有意图和目的,但它并不是同时存在的。如果你看看:

请注意据我所知,以下是有效的reactjs代码。

/**
 * A component to display the individual post.
 */
var DisplayPosts = React.createClass({
  render: function() {
    if (this.props.posts === null) {
      return (<div></div>);
    }

    var markDown = new Showdown.converter();

    var post = this.props.posts.slice(0, 4).map(function(post) {
      var content = markDown.makeHtml(post.content)
      return (
        <div>
          <div className="single-post" key={post.id}>
            <h3><a href={"http://writer.aisisplatform.com/blog#post/" + post.title}>{post.title}</a></h3>
            <span dangerouslySetInnerHTML={{__html: content.split(/\s+/).slice(0, 40).join(' ') + '...'}} />
            <hr />
            <div className="float-right">
              <i className="fa fa-comments"></i> {post.comments.length}
            </div>
          </div>
        </div>
      );
    });

    return (
      <div>{post}</div>
    )
  }
});

并在console.log内放置一个this.props.posts.slice(0, 4).map(function(post) {,你永远不会到达那里。放在一边,你到达那里。在街区之后放置一个,你到达那里。将一个放在里面 - 你永远不会到达那里。

发生了什么事?

1 个答案:

答案 0 :(得分:1)

Array.slice()上调用[]时,它会返回[]。然后,当Array.map上调用[]时,它永远不会调用迭代器函数。

所以看起来this.props.posts在这种情况下是一个空数组。