Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/reactjs/21.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 在React中动态填充表单_Reactjs - Fatal编程技术网

Reactjs 在React中动态填充表单

Reactjs 在React中动态填充表单,reactjs,Reactjs,我想为列表中的每个项目生成一行。我目前试图通过以下方式实现这一目标: <thead> <tr> <th>Title</th> <th>Date</th> <th>People</th> <th>Status</th> </tr> </thead> { this.renderEvents()

我想为列表中的每个项目生成一行。我目前试图通过以下方式实现这一目标:

<thead>
    <tr>
      <th>Title</th>
      <th>Date</th>
      <th>People</th>
      <th>Status</th>
    </tr>
</thead>
{ this.renderEvents() }


标题
日期
人
地位
{this.renderEvents()}

renderEvents(){
const events=this.state.data;
console.log(事件);
返回(
{events.forEach((event)=>{
返回(
{event.title}
{event.startDate}
{event.userList.length}
来了
);
})}
);
}
我目前面临的问题是,我的console.log(events)行执行了两次,而表保持为空

感谢您的帮助!:)

不返回新数组。试试吧

返回(
{events.map((事件)=>{
返回(
{event.title}
{event.startDate}
{event.userList.length}
来了
);
})}
);
不返回新数组。试试吧

返回(
{events.map((事件)=>{
返回(
{event.title}
{event.startDate}
{event.userList.length}
来了
);
})}
);

另一种方法

render(){
  const data = events.map(
    event => {
      <tbody>
        <tr>
          <td>{event.title}</td>
          <td>{event.startDate}</td>
          <td>{event.userList.length}</td>
          <td><Badge color="success">Coming</Badge></td>
        </tr>
      </tbody>
    })

  return (
    <div>
      {data}
    </div>
  )
}
render(){
const data=events.map(
事件=>{
{event.title}
{event.startDate}
{event.userList.length}
来了
})
返回(
{data}
)
}

另一种方法

render(){
  const data = events.map(
    event => {
      <tbody>
        <tr>
          <td>{event.title}</td>
          <td>{event.startDate}</td>
          <td>{event.userList.length}</td>
          <td><Badge color="success">Coming</Badge></td>
        </tr>
      </tbody>
    })

  return (
    <div>
      {data}
    </div>
  )
}
render(){
const data=events.map(
事件=>{
{event.title}
{event.startDate}
{event.userList.length}
来了
})
返回(
{data}
)
}

更多的React惯用解决方案是使用React组件,而不是调用返回jsx的函数。组件创建一次并装入一次,相反,每次函数都会返回一个新组件(意味着内存链接将更改),这将导致在每次装入和卸载组件时对协调机制作出反应。这不利于反应性能

我建议您以下一种方式构建代码:

class EventViewer extends React.Component {
     // keep logic of fetching events here and saving them (to state for example)

    render() {
        return (
            <table>
                <EventVieverHeader />
                <EventVieverBody events={this.state.events}/>
            </table>
        )
    }

}

const EventVieverHeader = () => (
    <tr>
        <td>{event.title}</td>
        <td>{event.startDate}</td>
        <td>{event.userList.length}</td>
        <td><Badge color="success">Coming</Badge></td>
    </tr>
);


const EventVieverBody = ({events}) => (
    <tbody>
        {events.map(
            event => {
                <tr>
                    <td>{event.title}</td>
                    <td>{event.startDate}</td>
                    <td>{event.userList.length}</td>
                    <td><Badge color="success">Coming</Badge></td>
                </tr> 
        })}
     </tbody>
    )
类EventViewer扩展了React.Component{
//在此处保留获取事件并保存它们的逻辑(例如,状态)
render(){
返回(
)
}
}
const EventVieverHeader=()=>(
{event.title}
{event.startDate}
{event.userList.length}
来了
);
const EventVieverBody=({events})=>(
{events.map(
事件=>{
{event.title}
{event.startDate}
{event.userList.length}
来了
})}
)

更多的React惯用解决方案是使用React组件,而不是调用返回jsx的函数。组件创建一次并装入一次,相反,每次函数都会返回一个新组件(意味着内存链接将更改),这将导致在每次装入和卸载组件时对协调机制作出反应。这不利于反应性能

我建议您以下一种方式构建代码:

class EventViewer extends React.Component {
     // keep logic of fetching events here and saving them (to state for example)

    render() {
        return (
            <table>
                <EventVieverHeader />
                <EventVieverBody events={this.state.events}/>
            </table>
        )
    }

}

const EventVieverHeader = () => (
    <tr>
        <td>{event.title}</td>
        <td>{event.startDate}</td>
        <td>{event.userList.length}</td>
        <td><Badge color="success">Coming</Badge></td>
    </tr>
);


const EventVieverBody = ({events}) => (
    <tbody>
        {events.map(
            event => {
                <tr>
                    <td>{event.title}</td>
                    <td>{event.startDate}</td>
                    <td>{event.userList.length}</td>
                    <td><Badge color="success">Coming</Badge></td>
                </tr> 
        })}
     </tbody>
    )
类EventViewer扩展了React.Component{
//在此处保留获取事件并保存它们的逻辑(例如,状态)
render(){
返回(
)
}
}
const EventVieverHeader=()=>(
{event.title}
{event.startDate}
{event.userList.length}
来了
);
const EventVieverBody=({events})=>(
{events.map(
事件=>{
{event.title}
{event.startDate}
{event.userList.length}
来了
})}
)

非常感谢,修复了:D非常感谢,修复了:D