React教程:Uncaught TypeError:无法读取null的属性“数据”

dra*_*mnl 5 javascript reactjs

我正在以下网址关注React教程:http//facebook.github.io/react/docs/tutorial.html

我只是 http://facebook.github.io/react/docs/tutorial.html#fetching-from-the-server 之后

我在SO上经历了类似的问题,但没有找到针对我的特定情况的解决方案。

var data = [
    {author: "Pete Hunt", text: "This is one comment"},
    {author: "Jordan Walke", text: "This is *another* comment"},
    {author: "Bob Lilly", text: "This is *another* comment 2"}

];

var Comment = React.createClass({
    render: function() {
        var rawMarkup = marked(this.props.children.toString(), {sanitize: true});
        return (
            <div className="comment">
                <h2 className="commentAuthor">
                    {this.props.author}
                </h2>
                <span dangerouslySetInnerHTML={{__html: rawMarkup}} />
            </div>
        );
    }
});

var CommentList = React.createClass({
    render: function() {
        var commentNodes = this.props.data.map(function (comment) {
            return (
                <Comment author={comment.author}>
                    {comment.text}
                </Comment>
            );
        });
        return (
            <div className="commentList">
                {commentNodes}
            </div>
        );
    }
});

var CommentForm = React.createClass({
    render: function() {
        return (
            <div className="commentForm">
                <br/>Hello, world! I am a CommentForm.
            </div>
        );
    }
});

var CommentBox = React.createClass({
    render: function() {
        return (
            <div className="commentBox">
                <h1>Comments</h1>
                <CommentList data={this.props.data} /> 
                <CommentForm />
            </div>
        );
    }
});


React.render(
    // <CommentBox url="comments.json" />, 
    <CommentBox data={data} />,
    document.getElementById('content')
);
Run Code Online (Sandbox Code Playgroud)

当我尝试使用从服务器获取的数据(第一步->参见第二个链接)时,出现以下错误:

未捕获的TypeError:无法读取null的属性“数据”

我想这与错误地传递数据有关。

编辑:我用到目前为止给出的答案编辑了鳕鱼

编辑2:现在它适用于哑数据(var data = [...),但从服务器获取时无效

bre*_*nzy 2

仅添加该行不会从服务器获取数据。您需要一直工作到“Reactive State”部分的末尾,创建数据文件,并添加一些 ajax 代码来加载数据。