Javascript 我可以在ReactClass中设置ReactClass吗?
我试过了,但没有成功Javascript 我可以在ReactClass中设置ReactClass吗?,javascript,reactjs,Javascript,Reactjs,我试过了,但没有成功 var osDD = React.createClass({ propTypes: { dat: React.PropTypes.array }, render: function(){ var li = this.props.dat; console.log(li); return ( <ul><li></li></ul
var osDD = React.createClass({
propTypes: {
dat: React.PropTypes.array
},
render: function(){
var li = this.props.dat;
console.log(li);
return (
<ul><li></li></ul>
)
}
});
var osPre = React.createClass({
render: function(){
var osdd = React.createElement(
osDD,
{dat: this.props.dat}
);
return (
<div>
<header>{this.props.title}</header>
<p>{this.props.description}</p>
<span className="opt_serv_price">{this.props.price}</span>
<osdd/>
</div>
)
}
});
var osDD=React.createClass({
道具类型:{
dat:React.PropTypes.array
},
render:function(){
var li=this.props.dat;
控制台日志(li);
返回(
)
}
});
var osPre=React.createClass({
render:function(){
var osdd=React.createElement(
osDD,
{dat:this.props.dat}
);
返回(
{this.props.title}
{this.props.description}
{this.props.price}
)
}
});
这只是在DOM中呈现一个空标记
也许我不是这样做的。我只是在看了一些视频和阅读之后才开始玩React 好的,我偶然发现了这个网站(),它谈到了在React中筑巢 因此,尝试相应地遵循并将我的代码更新为:
var osDD = React.createClass(/*no changes*/);
var osPre = React.createClass({
render: function(){
return (
<div>
<header>{this.props.title}</header>
<p>{this.props.description}</p>
<span className="opt_serv_price">{this.props.price}</span>
<osDD/>
</div>
)
}
});
var osDD=React.createClass(/*无更改*/);
var osPre=React.createClass({
render:function(){
返回(
{this.props.title}
{this.props.description}
{this.props.price}
)
}
});
但它仍然不起作用。在查看官方文档()中的更多示例时,我注意到它们都使用大写的变量定义了ReactClass
所以我不得不把我的类名从
osDD
改成osDD
,它成功了!我想我在文件里遗漏了这件事。如果有人能给我指出它的位置,我将不胜感激。好的,我偶然发现了这个网站(),它谈到了在React中筑巢
因此,尝试相应地遵循并将我的代码更新为:
var osDD = React.createClass(/*no changes*/);
var osPre = React.createClass({
render: function(){
return (
<div>
<header>{this.props.title}</header>
<p>{this.props.description}</p>
<span className="opt_serv_price">{this.props.price}</span>
<osDD/>
</div>
)
}
});
var osDD=React.createClass(/*无更改*/);
var osPre=React.createClass({
render:function(){
返回(
{this.props.title}
{this.props.description}
{this.props.price}
)
}
});
但它仍然不起作用。在查看官方文档()中的更多示例时,我注意到它们都使用大写的变量定义了ReactClass
所以我不得不把我的类名从
osDD
改成osDD
,它成功了!我想我在文件里遗漏了这件事。如果有人能告诉我答案在哪里,我将不胜感激。在找到答案方面做得很好,JSX将在幕后为您运行createElement。由于从技术上讲,您可以在html中生成任意随机DOM元素,因此您可以告诉JSX您希望通过大写第一个字母来呈现React类,而不是平面旧DOM元素
这是文件:
HTML标记与React组件的比较
React可以呈现HTML标记(字符串)或React组件(类)
要呈现HTML标记,只需在JSX中使用小写标记名
要呈现React组件,只需创建一个以大写字母开头的局部变量
在找到答案方面做得很好,JSX将在幕后为您运行createElement。由于从技术上讲,您可以在html中生成任意随机DOM元素,因此您可以告诉JSX您希望通过大写第一个字母来呈现React类,而不是平面旧DOM元素 这是文件: HTML标记与React组件的比较 React可以呈现HTML标记(字符串)或React组件(类) 要呈现HTML标记,只需在JSX中使用小写标记名 要呈现React组件,只需创建一个以大写字母开头的局部变量
尝试
而不是
@JDavidSmith thanks,但是给元素一个dat
属性,仍然不能正确呈现try
而不是
@JDavidSmith thanks,但是给elem一个dat
属性,仍然不能正确呈现。Lyreact的JSX使用大小写约定来区分本地组件类和HTML标记。React的JSX使用大小写约定来区分本地组件类和HTML标记。