Javascript 为什么这不起作用?

Javascript 为什么这不起作用?,javascript,reactjs,react-jsx,Javascript,Reactjs,React Jsx,我有以下代码: var LikeCon = React.createClass({ handleClick: function(like) { return; }, render(){ return this.renderLikeButton(this.props.like, this.props.likeCount) }, renderLikeButton(like, likeCount){ retur

我有以下代码:

var LikeCon = React.createClass({
    handleClick: function(like) {
        return;
      },
    render(){
        return this.renderLikeButton(this.props.like, this.props.likeCount)
    },
    renderLikeButton(like, likeCount){
        return (
                content = <div className={like==true ? "likeButConAct" : "likeButCon"}>
                            <div className="likeB" onClick={this.handleClick(!like)} >&nbsp;</div>
                            { likeCount > 0 ? <div className="likeCount">{likeCount}</div>: null}
                        </div>
            );
    }
});
var LikeCon=React.createClass({
handleClick:函数(like){
返回;
},
render(){
返回此.renderLikeButton(this.props.like,this.props.likeCount)
},
renderLikeButton(like,likeCount){
返回(
内容=
{likeCount>0?{likeCount}:null}
);
}
});
问题是,即使单击likeB div,handleClick也永远不会被触发?为什么?

编辑:

这是使用LikeCon组件的代码:

var TopicComments = React.createClass({
    render: function() {
        var comment = this.props.data.map(function(com, i) {
            return (
            <article>
            <div className="comment">
                <div className="tUImgLnk">
                    <a title={com.UserName} target="_blank" href={com.UserInfoUrl}>
                        <img className="tUImg" src={com.UserPicSrc} />
                    </a>
                </div>
                <a href="#" target="_blank">{com.UserName}</a>
                <div className="content">
                    {com.Message}
                </div>
                <div className="status">
                    <div className="dateCreated dimText">
                        {com.DateCreated}
                    </div>  
                    <LikeCon like={com.Like} likeCount={com.LikeCount} />
                    <article></article>
                </div>
            </div>
            </article>);
        }.bind(this));
        return(
            <div className="comments">
                {comment}
            </div>
            );
    }
});
var-TopicComments=React.createClass({
render:function(){
var comment=this.props.data.map(函数(com,i){
返回(
{com.Message}
{com.DateCreated}
);
}.约束(这个);
返回(
{comment}
);
}
});

我怀疑问题在于LikeCon正在为TopicComment生成标记,因此当从TopicComment触发handleClick时,handleClick实际上不在那里。有一种简单的方法可以解决这个问题吗?

您应该像这样传递句柄单击事件:

<div className="likeB" onClick={this.handleClick.bind(this,!like)} >&nbsp;</div>

对于当前版本,您正在将执行
this.handleClick(!like)
的结果传递给未定义的onClick处理程序

使用上述版本,您将传递一个函数,该函数需要
!执行时,将like
作为其第一个参数

更新:

另外,由于
div
只包含一个空格字符,因此很难找到空格字符并单击它。如果添加文本并单击该文本,您将看到正在执行句柄函数:


工作小提琴:

谢谢,但它仍然不起作用,甚至没有为页面上的div生成onClick,因此我怀疑某些内容仍然未定义?是的,这很好,但在我的解决方案中不起作用。看来我还有一个问题要解决。我怀疑reactJS.NET做了一些不太好的事情。我得到的异常类似于未捕获引用错误:未定义FeedBox,但渲染了FeedBox。我必须先解决这个问题,我怀疑onClick会起作用。无论如何,谢谢你的帮助。