如何在render方法中的React const变量内部循环

jdmdevdotnet

我有一个映射的const变量,可用于在render方法中注入我的返回值。现在我的问题是,我正在映射的对象本身具有对象的集合。我想遍历每一个并添加jsx语法。这就是我所拥有的:

const tasks = this.state.tasks.map((task) => {
            var editable = this.state.editableTasks.filter(id => id === task.Id).length > 0;
            return (
               <li key={task.Id} className="list-group-item" style={{minHeight: '50px'}}>
                   <div className="pull-left" style={{width: '50%'}}>
                       {editable ? <input type="text" /> : <span>{task.Name}</span>}
                   </div>
                   <div className="pull-right" style={{marginTop: '-5px', width: '50%'}}>
                       <div className="pull-right">
                            <button className="btn btn-default" onClick={() => {this.AddSubTask(task.Id)}}>Add</button>
                            <button className="btn btn-default" onClick={() => { this.EditTask(task.Id)}}>{editable ? 'Save' : 'Edit'}</button>
                        </div>
                   </div>
               </li>
               
            //What I have currently tried:
            //for(var i = 0; i < task.SubTasks.length; i++) {
                //<ul>
                //<li>
                //...etc
                //</li>
                //</ul>
            //}

            //{task.SubTasks.map((subtask) => {
                //<ul>
                //<li>
                //...etc
                //</li>
                //</ul>
            //)};
            );
        });
        return (
          <div className="table-wrapper">
            <div className="task-container">
                <h3>{this.props.rowName}</h3>
            </div>
            <ul id="tasksContainer">
                {tasks}
                <li className="list-group-item list-group-item-last"><input type="button" value="Add Task" onClick={this.createTask.bind(this)} className="btn btn-success btn-override" /></li>
            </ul>
          </div>

      );

我确实对格式表示歉意,无法完全正确。无论如何,所以在const task =声明中,我想遍历每个task.SubTasks(索引集合的集合)并添加另一个无序列表。

我试图简单地编写一个for循环,但是它没有用,并且还尝试编写另一个映射函数,这也没有用。这可行吗?

z

如果首先创建一个空数组并将组件推入其中,则另一个映射应该也可以工作。for循环可以工作。

const subTaskComponents = []
for (var i = 0; i < task.SubTasks.length; i++) {
  subTaskComponents.push(
    <ul key={task.SubTasks[i].id>
      <li>..</li>
    </ul>
  )
}

map 是一个更好的解决方案

const subTaskComponents = task.SubTasks.map(subTask =>
  <ul key={subTask.id}>
    <li>..</li>
  </ul>
)

然后,无论哪种情况,您都可以像tasks在内部render中一样使用它

render() {
  const tasks = this.state.tasks.map((task) => {
    const subTaskComponents = task.SubTasks.map(subTask =>
      <ul key={subTask.id}>
        <li>..</li>
      </ul>
    )

    return (
      <div>{subTaskComponents}</div>
    )
  }

  return (
    <div>{tasks}</div>
  )
}

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

除了递增语句,如何使for循环变量const?

如何访问Popover内部的循环变量?

如何在另一个组件的render方法内部渲染存储在数组中的React组件

在Java中从内部循环访问外部循环变量

从循环内部在while循环测试中更新bash变量?

for循环内部循环变量中不遵守类型的typescript

如何在React中的组件内部测试内部方法?

如何在JSX内部的React中循环编号

如何在Javascript中为变量内部编写for循环,或者有替代解决方案?

调用内部带有 for 循环的方法,而不是更新变量

在Meter中为每个循环使用变量内部

在内部类中访问for循环变量

在内部类中访问for循环变量的最佳实践

在Python中的For语句内部循环输入字段的变量

关于如何在render()中引用状态变量的真正快速的问题-React Native

如何在变量中存储非自封闭标签并在render()方法中调用它?

为什么在React中的render方法之前,我的for循环在类内部不起作用?

如何在jQuery中的push()方法内部迭代变量

如何在React render函数中使用ejs变量?

应该在Java中的循环内部还是循环外部声明变量

在C / C ++中的循环声明的内部或外部初始化计数循环变量

如何在render()中的map()中创建和分配变量?

在render方法中访问构造函数变量-React.js

如何通过正则表达式作为循环变量在文件内部的一行中循环

如何在font.render行中包含此变量?

如何在Javascript中访问函数内部变量中的变量?

React(TypeScript):如何在const创建中循环

React.js setState()与变量是否在内部循环键?

php变量(内部HTML表单操作标签)尽管在外部表单中递增,但在while循环内部未递增