有什么方法可以缩短这段代码吗?唯一的区别是我希望在索引0处显示“全部”而不是数组值。
或者可能是多重条件?比如在index = 0,这样做,索引是%2,这样做,最后一个索引,这样做吗?
我也找到了相同的解决方案。我现在又遇到了一个问题,
我想在onClick中选择两个函数。
<a onClick={()=>{AddNewBookmark(userId, newsId); this.changeBookmarkState(isBookmarked, bookmarkIndex);}}>
我想索引== 0使用AddNewBookmark(userId,newsId)或索引== 1然后使用RemoveBookmark(userId,newsId)。
<a onClick={()=>{ index == 0 ? AddNewBookmark(userId, newsId) :
RemoveBookmark(userId, newsId); this.changeBookmarkState(isBookmarked,
bookmarkIndex);}}>
我希望无论索引值是什么,都要包含changebookmarkstate。
我的尝试不知何故。有什么建议吗?
由于您所做的只是更改在span中呈现的内容,因此您可以在跨越的JSX中执行逻辑
这应该工作:
isFiltered[index] && (
<div key={index}>
<span>{index == 0 ? "All" : category['Name']}</span>
</div>
);
您还可以将此逻辑提取到函数中,然后在span中调用该函数。如果您想要在该范围内显示一堆不同的结果,这将更清洁。像这样的东西:
helperFucntion(index: number) => (
index == 0 ? "All" : category['Name']
)
isFiltered[index] && (
<div key={index}>
<span>{helperFunction(index)}</span>
</div>
);
代码的最短形式可能是这样的:
isFiltered[index] && return (
<div key={index}>
<span">{ index ? "ALL" : category['Name'] }</span>
</div>
);
您的代码似乎不完整,所以我无法确定,但您可以根据需要使用以下内容。
您可以在数组的开头插入新索引。
isFiltered.unshift['All'];
if (isFiltered[index]){
return (
<div key={index}>
<span>{ category['Name']}</span>
</div>
);
}