Javascript 什么';这是在react中查找分页列表中某类型项的第n个元素的最佳方法
如果要呈现列表中的项目列表,如下所示:Javascript 什么';这是在react中查找分页列表中某类型项的第n个元素的最佳方法,javascript,reactjs,Javascript,Reactjs,如果要呈现列表中的项目列表,如下所示: render() { return ( <List> {() => { return items.map(item => { return ( <ListItem key={item.id} item={item} /> );
render() {
return (
<List>
{() => {
return items.map(item => {
return (
<ListItem
key={item.id}
item={item}
/>
);
});
}}
</List>
);
}
render() {
let itemACount = 0;
return (
<List>
{items.map(item => {
if(item.type === 'typeA') {
if(itemACount === 0) {
itemACount ++;
return (<ItemWrapper><TypeAComponent item={item}/></ItemWrapper>)
}
return <ItemWrapper><NewWrapper>{item}</NewWrapper></ItemWrapper>
}
return (
<ItemWrapper><TypeBComponent item={item}/></ItemWrapper>
);
});
}
</List>
);
}
render(){
返回(
{() => {
返回items.map(item=>{
返回(
);
});
}}
);
}
传递到ListItem的项基本上可以是两种不同的类型,我想有条件地对其进行更改,请参见下面示例中的注释
render() {
const { item } = this.props
switch (item.__typename) {
case "TypeA":
item = (
<TypeAComponent item={item}/>
);
if (this is the second TypeA in the list) {
item = <NewWrapper>{item}</NewWrapper>
}
break;
case "TypeB":
item = (
<TypeBComponent item={item}/>
);
break;
}
return <ItemWrapper>{item}</ItemWrapper>
}
render(){
const{item}=this.props
开关(项目名称){
案例“A型”:
项目=(
);
如果(这是列表中的第二种类型A){
item={item}
}
打破
“B类”案例:
项目=(
);
打破
}
返回{item}
}
我可以想象,我在通过列表渲染中的项进行映射时进行此计算。有没有更好的方法来编写此内容?您可以将第一个贴图循环更改为以下内容:
render() {
return (
<List>
{() => {
return items.map(item => {
return (
<ListItem
key={item.id}
item={item}
/>
);
});
}}
</List>
);
}
render() {
let itemACount = 0;
return (
<List>
{items.map(item => {
if(item.type === 'typeA') {
if(itemACount === 0) {
itemACount ++;
return (<ItemWrapper><TypeAComponent item={item}/></ItemWrapper>)
}
return <ItemWrapper><NewWrapper>{item}</NewWrapper></ItemWrapper>
}
return (
<ItemWrapper><TypeBComponent item={item}/></ItemWrapper>
);
});
}
</List>
);
}
render(){
设itemACount=0;
返回(
{items.map(item=>{
如果(item.type=='typeA'){
如果(itemACount==0){
itemACount++;
返回()
}
返回{item}
}
返回(
);
});
}
);
}
您知道第n个数字吗?是的,它将是文件顶部的一个常量,就像我们可以说5一样,您将项目作为数据道具传递。是这样还是我遗漏了什么是的,是的,对不起,错了