Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/reactjs/22.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
reactjs-如何渲染返回组件的组件?_Reactjs - Fatal编程技术网

reactjs-如何渲染返回组件的组件?

reactjs-如何渲染返回组件的组件?,reactjs,Reactjs,对于下面的示例,我有一个组件GetCurrentVisitor,它呈现Visitors 但是,它只会呈现标记,并且表是空的。我怀疑我还需要使用ReactDOM来渲染Vistors组件。但是怎么做呢 var VISITORS = [ { first_name: 'Harry', last_name: 'Potter' }, { first_name: 'Hermione',

对于下面的示例,我有一个组件
GetCurrentVisitor
,它呈现
Visitors

但是,它只会呈现
标记,并且表是空的。我怀疑我还需要使用
ReactDOM
来渲染
Vistors
组件。但是怎么做呢

var VISITORS = [
        {
            first_name: 'Harry',
            last_name: 'Potter'
        },
        {
            first_name: 'Hermione',
            last_name: 'Granger'
        }
    ]

class GetCurrentVisitors extends React.Component {
    constructor(props) {
        super(props);
        this.state = {
            visitors: VISITORS
        }
    }

    render () {
        return (
            <div>
                <h1>Current visitors</h1>
                <Visitors visitors={this.state.visitors} />
            </div>
        );
    }
}

class Visitors extends React.Component {
    constructor(props) {
        super(props);
    }
    render () {
        return (
            <table>
                {this.props.visitors.forEach(
                    function(visitor) {
                        <tr>
                            <td>
                            {console.log('from: ', visitor.first_name)}
                            {visitor.first_name}
                            </td>
                        </tr>
                    })}
            </table>
        );
    }
}

ReactDOM.render(
    <GetCurrentVisitors />, document.getElementById('getcurrentvisitors'))
var访问者=[
{
名字:“哈里”,
姓:“波特”
},
{
名字:“赫敏”,
姓:“格兰杰”
}
]
类GetCurrentVisitors.Component{
建造师(道具){
超级(道具);
此.state={
访客:访客
}
}
渲染(){
返回(
当前访客
);
}
}
类。组件{
建造师(道具){
超级(道具);
}
渲染(){
返回(
{this.props.visitors.forEach(
功能(访客){
{console.log('from:',visitor.first_name)}
{访客名}
})}
);
}
}
ReactDOM.render(
,document.getElementById('getcurrentvisitors'))

在这种情况下,您应该使用

{this.props.visitors.map(函数(访问者,索引){
返回
{visitor.first_name}
})}

您也可以使用
.forEach
,但可以使用另一种方式

render(){
让itemList=[];
this.props.visitors.forEach(函数(visitor,index){
itemList.push(
{访客名}
)
})
返回(
{itemList}
);
}
对于我来说,
Array.prototype.map
更易于与React一起使用。这只是另一个例子

谢谢

{this.props.visitors.map(function(visitor, index) {
  return <tr key={index}>
    <td>{ visitor.first_name } </td>
  </tr>
})}
render () {
  let itemList = [];
  this.props.visitors.forEach(function(visitor,index) {
    itemList.push(<tr key={index}><td>
        {visitor.first_name}
      </td></tr>
    )
  })
  return (
    <table>
      {itemList}
    </table>
    );
}