Reactjs 缩短此代码的方法

Reactjs 缩短此代码的方法,reactjs,typescript,Reactjs,Typescript,有没有办法缩短这个代码? 唯一的区别是我希望在索引0处显示'All'而不是数组值 或者是多种情况?比如在索引=0时,做这个,索引是%2,做这个,最后一个索引,做这个 我也找到了同样的解决办法。 我现在有另一个问题 我想在onClick中的两个函数之间进行选择 <a onClick={()=>{AddNewBookmark(userId, newsId); this.changeBookmarkState(isBookmarked, bookmarkIndex);}}> {Ad

有没有办法缩短这个代码? 唯一的区别是我希望在索引0处显示'All'而不是数组值

或者是多种情况?比如在索引=0时,做这个,索引是%2,做这个,最后一个索引,做这个

我也找到了同样的解决办法。 我现在有另一个问题

我想在onClick中的两个函数之间进行选择

<a onClick={()=>{AddNewBookmark(userId, newsId); this.changeBookmarkState(isBookmarked, bookmarkIndex);}}>
{AddNewBookmark(userId,newsId);this.changeBookmarkState(isbookmark,bookmarkIndex);}>
我希望is index==0使用AddNewBookmark(userId,newsId),或者如果index==1,则使用RemoveBookmark(userId,newsId)

{index==0?AddNewBookmark(用户ID,新闻ID):
RemoveBookmark(userId,newsId);this.changeBookmarkState(isBookmarked,
书签索引);}}>
我希望无论什么索引值都包含changebookmarkstate


不知怎的,我的尝试没有成功。有什么建议吗?

您的代码似乎不完整,所以我不能确定,但您可以根据需要使用以下代码

可以在数组的开头插入新索引

isFiltered.unshift['All'];

if (isFiltered[index]){
    return (
        <div key={index}>
            <span>{ category['Name']}</span>              
        </div>        
    );                   
}
isFiltered.unshift['All'];
如果(已筛选[索引]){
返回(
{category['Name']}
);                   
}

您的代码似乎不完整,所以我不能确定,但您可以根据需要使用以下代码

可以在数组的开头插入新索引

isFiltered.unshift['All'];

if (isFiltered[index]){
    return (
        <div key={index}>
            <span>{ category['Name']}</span>              
        </div>        
    );                   
}
isFiltered.unshift['All'];
如果(已筛选[索引]){
返回(
{category['Name']}
);                   
}

代码的最短形式如下:

isFiltered[index] && return (
          <div key={index}>
              <span">{ index ? "ALL" : category['Name'] }</span>              
         </div>        
);
helperFucntion(index: number) => (
   index == 0 ? "All" : category['Name']
)

isFiltered[index] && (
   <div key={index}>
     <span>{helperFunction(index)}</span>              
   </div>        
);
isFiltered[索引]&返回(

代码的最短形式如下所示:

isFiltered[index] && return (
          <div key={index}>
              <span">{ index ? "ALL" : category['Name'] }</span>              
         </div>        
);
helperFucntion(index: number) => (
   index == 0 ? "All" : category['Name']
)

isFiltered[index] && (
   <div key={index}>
     <span>{helperFunction(index)}</span>              
   </div>        
);
isFiltered[索引]&返回(

由于您所做的只是更改在范围中呈现的内容,因此可以在范围内的JSX中执行逻辑

这应该起作用:

isFiltered[index] && (
   <div key={index}>
     <span>{index == 0 ? "All" : category['Name']}</span>              
   </div>        
);
isFiltered[index]&&(
{index==0?“全部”:类别['Name']}
);
您还可以将此逻辑提取到一个函数中,然后在范围中调用该函数。如果您最终希望在该范围中显示一系列不同的结果,这将更加简洁。类似于以下内容:

isFiltered[index] && return (
          <div key={index}>
              <span">{ index ? "ALL" : category['Name'] }</span>              
         </div>        
);
helperFucntion(index: number) => (
   index == 0 ? "All" : category['Name']
)

isFiltered[index] && (
   <div key={index}>
     <span>{helperFunction(index)}</span>              
   </div>        
);
helperfuntion(索引:number)=>(
索引==0?“全部”:类别['Name']
)
isFiltered[索引]&(
{helperFunction(index)}
);

因为您所做的只是更改span中呈现的内容,所以您可以在span中的JSX中执行逻辑

这应该起作用:

isFiltered[index] && (
   <div key={index}>
     <span>{index == 0 ? "All" : category['Name']}</span>              
   </div>        
);
isFiltered[index]&&(
{index==0?“全部”:类别['Name']}
);
您还可以将此逻辑提取到一个函数中,然后在范围中调用该函数。如果您最终希望在该范围中显示一系列不同的结果,这将更加简洁。类似于以下内容:

isFiltered[index] && return (
          <div key={index}>
              <span">{ index ? "ALL" : category['Name'] }</span>              
         </div>        
);
helperFucntion(index: number) => (
   index == 0 ? "All" : category['Name']
)

isFiltered[index] && (
   <div key={index}>
     <span>{helperFunction(index)}</span>              
   </div>        
);
helperfuntion(索引:number)=>(
索引==0?“全部”:类别['Name']
)
isFiltered[索引]&(
{helperFunction(index)}
);


调用API将从数据库中删除记录不要完全重新编辑问题-删除并创建新问题您最好在以后的网站上提出此类问题。这不是离题,但该网站致力于改进现有的工作代码。调用API将从数据库中删除记录不要完全重新编辑问题-删除e并创建一个新的。你最好在以后的网站上问这样的问题。这不是离题,但该网站致力于改进已经运行的代码。它将忽略索引0上的第一个类别名称。我不知道业务逻辑,我只是缩短了Khoa的代码。我只是想让第一列显示ay“all”和其余类别名称。这意味着我希望它为索引0选择“all”,其余的“name”更改模板如下:
它将忽略索引0上的第一个类别名称。我不知道业务逻辑,我只是缩短了Khoa的代码。例如,我只希望第一列显示“all”还有rest类别名称。这意味着我希望它为索引0选择“全部”,其余的“名称”像这样更改模板:
这对选择函数有用吗?调用的==?:运算符是什么?它是一个三元运算符。与使用相同的结果:
if(index==0){return“All”}else{return category['name']}
if(index==0){return“All”}else{return category['Name']}调用的==?:运算符是什么?它是一个三元运算符。结果与使用时相同:
if(index==0){return“All”}else{return category['Name']}