我正在JSBin上玩ReactJS框架。
我注意到,如果我的组件名称以小写字母开头,它就不起作用。
例如,以下内容不会呈现:
var fml = React.createClass({
render: function () {
return <a href='google.com'>Go</a>
}
});
React.render(<fml />, document.body);
但只要我用fml
替换fml
它就会呈现。
我不能用小字母开始标签有什么原因吗?
来自官方的React参考:
当一个元素类型以小写字母开头时,它引用一个内置组件,如or,并导致传递给React.createElement的字符串'div'或'span'。以大写字母开头的类型,如compile to React.createElement(Foo),并与JavaScript文件中定义或导入的组件相对应。
还请注意:
我们建议使用大写字母命名组件。如果您确实有一个以小写字母开头的组件,请在JSX中使用它之前将其分配给大写变量。
这意味着一个人必须使用:
constfoo=Foo
foo
用作JSX中的组件元素之前,请执行code>。
@Alexandre Kirszenberg给出了一个非常好的答案,只是想补充另一个细节。
React用于包含众所周知的元素名称的白名单,如div
等,它用于区分DOM元素和React组件。
但是因为维护这个列表并不那么有趣,而且因为网络组件使得创建自定义元素成为可能,所以他们制定了一条规则,所有React组件都必须以大写字母开头,或者包含一个点。
在JSX中,小写标记名称被认为是超文本标记语言标记。但是,带点(属性访问器)的小写标记名称不是。
请参阅HTML标记与React组件。
问题内容: 我正在使用JSBin上的ReactJS框架。 我注意到,如果我的组件名称以小写字母开头,那么它将不起作用。 例如,以下内容不呈现: 但是,一旦我替换为,它就会渲染。 我不能以小写字母开头的标签有原因吗? 问题答案: 在JSX中,小写标签名称被认为是HTML标签。但是,带点号(属性访问器)的小写标记名称不是。 参见HTML标签与React组件。 编译为(html标记) 编译为 编译为
我在PostgreSQL中有一个表: 我正在这个表上尝试Map,所以我使用了JPA注释(见下文)。这是我的: 最后,这是我的实体类: 如果我有这样的,我从PostgreSQL中得到消息 当我尝试转义引用时 我试过这个问题的回答,但不起作用 Spring boot JPA在表中插入带有Hibernate的大写字母名称 我一直在搜索改进的NamingStrategy,这似乎是spring boot中的
问题内容: 我的应用程序与Firebase数据库和身份验证链接。 用户创建帐户时,唯一的密码要求是6个字符。无论如何,我可以使密码更复杂,例如使它们具有大写字母和数字。 我可以直接从firebase中执行此操作,还是需要从我的代码中执行此操作? 问题答案: 使用此功能。它包括6-15的范围,即最少6个字符和最多15个字符。分别为一个大写字母和一个数字。 对于有效的密码字符串,此函数将返回true
我尝试设置我的JPA映射。由于某些原因,我必须有相同的java变量/表列名(包括大写字母),但我不能设置Hibernate。我尝试了明确的列名: 对于隐式映射: 这两种方法都创建不带大写字母的列名——“nextinvoicenr”。 我还试图改变Hibernate配置添加: 但没有成功
问题内容: 我有一个带有许多子元素的React(15.5.4)组件,其中一些是HTML元素,另一些是其他React组件。 我正在使用服务器渲染,并且在服务器和客户端上需要相同的行为。客户将使用React的生产版本。 我需要遍历子级并确定一种特定类型的React组件。所以我首先想到的是迭代使用并寻找组件名称。 似乎并且不存在。 现在,存在,它可以是一个字符串(对于HTML元素),也可以是一个函数(对
我正在使用Python和Flask对密码进行表单验证。密码需要包含至少一个大写字母和至少一个数字。 我目前失败的尝试...