React JS事件处理程序没有响应

时间:2017-09-12 19:52:30

标签: javascript reactjs event-handling

我是React JS newbe。我有一个非常简单的代码,它在一个应该由alert触发的函数中使用onClick。但是,该事件不会在Chrome(或任何其他浏览器)中触发。我错过了什么?我用谷歌搜索,并玩了代码,但似乎无法搞清楚。

<!DOCTYPE html>
<html>
<head>
    <meta charset="utf-8">
    <meta name="viewport" content="width=device-width, initial-scale=1">
    <title>React - Template</title>
    <script crossorigin src="https://unpkg.com/react@15/dist/react.min.js"></script>
    <script crossorigin src="https://unpkg.com/react-dom@15/dist/react-dom.min.js"></script>
    <script src="https://unpkg.com/babel-standalone@6/babel.min.js"></script>
</head>
<body>

<div id="container"></div>

<script type="text/babel">

    var Comment = React.createClass({

        edit: function () {
            alert('Editing comment');
        },
        remove: function () {
            console.log("Removing");
            alert('Removing comment');

        },
        render: function () {
            return (
                    <div className="commentContainer">
                        <div className="commentText">{this.props.children}</div>
                        <button onclick={this.edit} className="button-primary">Edit</button>
                        <button onclick={this.remove} className="button-danger">Remove</button>
                    </div>
            );
        }
    });


    ReactDOM.render(
            <div className="board">
                <Comment title="Blah">Blah</Comment>
            </div>
        , document.getElementById('container'));

</script>

</body>
</html>

1 个答案:

答案 0 :(得分:3)

它是onClick,而不是onclick。见https://facebook.github.io/react/docs/handling-events.html

  

React事件使用camelCase而不是小写命名。