反应开发者控制台没有出现

时间:2015-03-02 21:16:38

标签: reactjs

我已经安装了chrome扩展程序,我知道它的工作,因为它出现在instagram.com上。但是,我正在阅读React教程(http://facebook.github.io/react/docs/tutorial.html)并且反应选项卡未显示在我的控制台窗口中这里是我的所有代码:

<!-- index.html -->
<html>
  <head>
    <title>Hello React</title>
    <script src="http://fb.me/react-0.12.2.js"></script>
    <script src="http://fb.me/JSXTransformer-0.12.2.js"></script>
    <script src="http://code.jquery.com/jquery-1.10.0.min.js"></script>
  </head>
  <body>
    <div id="content"></div>
    <script type="text/jsx">
    var data = [
      {author: "Derp", text: "this is another comment"},
      {author: "Derp", text: "this is a comment"}
    ];

      var CommentBox = React.createClass({
        loadCommentsFromServer: function() {
          $.ajax({
            url: this.props.url,
            dataType: 'json',
            success: function(data) {
              this.setState({data: data});
            }.bind(this),
            error: function(xhr, status, err) {
              console.error(this.props.url, status, err.toString());
            }.bind(this)
          });
        },
        handleCommentSubmit: function(comment) {
          $.ajax({
            url: this.props.url,
            dataType: 'json',
            type: 'POST',
            data: comment,
            success: function(data) {
              this.setState({data: data});
            }.bind(this),
            error: function(xhr, status, err) {
              console.error(this.props.url, status, err.toString());
            }.bind(this)
          });
        },
        getInitialState: function() {
          return {data: []};
        },
        componentDidMount: function() {
          this.loadCommentsFromServer();
          setInterval(this.loadCommentsFromServer, this.props.pollInterval);
        }
        render: function() {
          return (
            <div className="commentBox">
              <h1>Comments</h1>
              <CommentList data={this.state.data}/>
              <CommentForm onCommentSubmit={this.handleCommentSubmit}/>
            </div>
          );
        }
      });

      var CommentList = React.createClass({
        render: function() {
          var comments = this.props.data.map(function (comment){
            return (
              <Comment author={comment.author}>
                {comment.text}
              </Comment>
            )
          })

          return (
            <div className="commentList">
              {comments}
            </div>
          );
        }
      });

      var Comment = React.createClass({
        render: function() {
          return (
            <div className="comment">
              <h2 className="commentAuthor">
                {this.props.author}
              </h2>
              {this.props.children}
            </div>
          );
        }
      })

      var CommentForm = React.createClass({
        handleSubmit: function(e) {
          e.preventDefault();
          var author = this.refs.author.getDOMNode().value.trim();
          var text = this.refs.text.getDOMNode().value.trim();
          if(!text || !author) {
            return;
          }
          this.props.onCommentSubmit({author: author, text: text});
          this.refs.author.getDOMNode().value = '';
          this.refs.text.getDomNode().value = '';
        },
        render: function() {
          return (
            <div className="commentForm">
              <form className="commentForm">
                <input type="text" placeholder="your name" ref="something"/>
                <input type="text" placeholder="say something" ref="someting" />
                <input type="submit" value="Post" />
              </form>
            </div>
          );
        }
      });

      React.render(
        <CommentBox url="comments.json" pollInterval={2000}/>,
        document.getElementById('content')
      );
    </script>
  </body>
</html>

我的控制台说了以下内容:

Download the React DevTools for a better development experience: http://fb.me/react-devtools

You are using the in-browser JSX transformer. Be sure to precompile your JSX for production - http://facebook.github.io/react/docs/tooling-integration.html#jsx

Uncaught Error: Parse Error: Line 41: Unexpected identifier

我的某个地方有一个错误,但我正试图让React选项卡暂时显示,而不太确定如何操作。

3 个答案:

答案 0 :(得分:1)

我遇到了同样的问题:我安装了React Developer Tools插件,但React标签没有出现。 解决方案很简单:我只是关闭了Chrome标签页并再次打开它 - 它就在那里。

您可以在官方GitHub页面https://github.com/facebook/react-devtools#user-content-the-react-tab-doesnt-show-up

上阅读其他可能的原因

答案 1 :(得分:0)

这发生在我身上,因为我没有全局的React对象,或者全局需要能够从全局范围内要求('反应')。
我能够通过在gulpfile中做出反应来扩展工作。我确信它在webpack文件中的工作方式相同:

var React = require('react');

答案 2 :(得分:0)

该扩展程序已有更新。

如果安装了扩展程序,但在控制台中看不到

反应

这是因为他们将其更改为 Components and Profiler

提示:
1.转到开发者工具,单击组件
2.单击图标设置(查看设置)。
3.找到显示已过滤已启用或禁用的图标。

只需玩一下,它现在就会好很多了:)