在React/Javascript中查找映射的第一次迭代
我正在React中映射一个对象数组,我想找到在React/Javascript中查找映射的第一次迭代,javascript,arrays,reactjs,Javascript,Arrays,Reactjs,我正在React中映射一个对象数组,我想找到chosenFields数组的第一次迭代 人物阵列: [ { id:1, name:"Jim", occupation:"Programmer".........} {id:2, name:"Sally", occupation:"Pet Sitter".......}] 我有另一个对象数组,负责从PeopleArray显示哪些字段: chosenFields数组: [{label:"id", show:true}, {label:"name"
chosenFields
数组的第一次迭代
人物阵列:
[ { id:1, name:"Jim", occupation:"Programmer".........}
{id:2, name:"Sally", occupation:"Pet Sitter".......}]
我有另一个对象数组,负责从PeopleArray显示哪些字段:
chosenFields数组:
[{label:"id", show:true}, {label:"name", show:true}, {label:"occupation", show:false}]
我想知道,对于人物
数组的每一行,当代码第一次遍历chosenFields
数组时,是否有一种方法可以识别
renderSingleData(rowListData, currData){
//find which one is the first iteration to add a radiobox for each row
}
renderUserData(currRow){
return(
<div>
{chosenFields.map(this.renderChosenData.bind(this, currRow)}
</div>
)
}
render() {
return (
<div >
{PeopleData.map(this.renderUserData.bind(this))}
</div>
);
}
}
renderSingleData(rowListData,currData){
//找出哪一个是为每行添加radiobox的第一次迭代
}
renderUserData(currRow){
返回(
{chosenFields.map(this.rendercosenda.bind(this,currRow)}
)
}
render(){
返回(
{PeopleData.map(this.renderUserData.bind(this))}
);
}
}
这是一个非常简化的代码版本。我需要通过
向表中添加一个迭代。我目前正在React中使用一个变量,并使用计数器设置状态。我想知道是否有更直接的方法通过map函数查找迭代。查看for数组。prototype.map()
回调函数的第二个参数是索引。如果这是0,则这是回调的第一次迭代。在您的情况下,可能需要将该条件传播到几个回调中。类似于
renderSingleData(isFirst, rowListData, currData){
//find which one is the first iteration to add a radiobox for each row
}
renderUserData(currRow, currIdx){
return(
<div>
{chosenFields.map(this.renderChosenData.bind(this, currIdx === 0, currRow)}
</div>
)
}
render() {
return (
<div >
{PeopleData.map(this.renderUserData.bind(this))}
</div>
);
}
renderSingleData(isFirst、rowListData、currData){
//找出哪一个是为每行添加radiobox的第一次迭代
}
renderUserData(currRow、currIdx){
返回(
{chosenFields.map(this.renderChosenData.bind(this,currIdx==0,currRow)}
)
}
render(){
返回(
{PeopleData.map(this.renderUserData.bind(this))}
);
}
查看for数组.prototype.map()
回调函数的第二个参数是索引。如果这是0,则这是回调的第一次迭代。在您的情况下,可能需要将该条件传播到几个回调中。类似于
renderSingleData(isFirst, rowListData, currData){
//find which one is the first iteration to add a radiobox for each row
}
renderUserData(currRow, currIdx){
return(
<div>
{chosenFields.map(this.renderChosenData.bind(this, currIdx === 0, currRow)}
</div>
)
}
render() {
return (
<div >
{PeopleData.map(this.renderUserData.bind(this))}
</div>
);
}
renderSingleData(isFirst、rowListData、currData){
//找出哪一个是为每行添加radiobox的第一次迭代
}
renderUserData(currRow、currIdx){
返回(
{chosenFields.map(this.renderChosenData.bind(this,currIdx==0,currRow)}
)
}
render(){
返回(
{PeopleData.map(this.renderUserData.bind(this))}
);
}
感谢您的回复!我最初尝试了类似的方法,但出现了一个错误:ReferenceError:currIdx不是defined@lost9123193PeopleData
是一个数组吗?是的,它是一个对象array@lost9123193,这很奇怪。该方法是从其他地方调用的吗?感谢您的响应!我最初尝试了类似的方法,但我得到一个错误:ReferenceError:currIdx不是defined@lost9123193PeopleData
是一个数组吗?是的,它是一个对象array@lost9123193,这很奇怪。这个方法是从其他地方调用的吗?