Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/457.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/reactjs/26.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 我可以在ReactClass中设置ReactClass吗?_Javascript_Reactjs - Fatal编程技术网

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标记。