找不到反应成分

时间:2016-08-02 15:57:05

标签: angularjs reactjs

它抛出我错误:找不到反应组件myTable ..我有反应..

var myTable = React.createClass({

    render:function () {

        return(
            <div>
                <table  className="table scroll2" >
                    <thead>
                    <tr>
                        <td>Start Date</td>
                        <td>End Date</td>
                        <td>Hours</td>
                        <td></td>
                    </tr>
                    </thead>
                    {
                        this.props.list.map(function (item,i) {
                            return(
                                <tr>
                                    <td>{item.startDate}</td>
                                    <td>{item.endDate}</td>
                                    <td>{item.workInHours}</td>
                                </tr>
                            );
                        })
                    }
                </table>
            </div>
        );
    }
});
angular.module('app').value('myTable',myTable);

我称之为:

 <react-component name="myTable"></react-component>

2 个答案:

答案 0 :(得分:1)

像这样声明你的组件(注意Pascal Casing):

var MyTable = React.createClass({ ... })

使用这样的组件代替:

<MyTable />

正如Justin正确指出的那样,React类名必须以大写字母开头,否则它将被解释为html标记。因此,很多人都关注Pascal Case

来自官方文档:

  

要渲染React Component,只需创建一个以大写字母开头的本地变量

JSX in Depth: HTML Tags vs. React Components

答案 1 :(得分:0)

@Mario Tacke你是对的,除了它是一个反射元素的pascal cased,否则它将被解释为HTML标记元素而不是反应元素。

更多相关信息https://gist.github.com/sebmarkbage/f1f4ba40816e7d7848ad