javascript - 如何在 JSX 中使用条件将容器包装在地图函数中 - TypeScript
问题描述
所以我有一个由.map()
函数迭代的对象数组,在它里面我想有一个条件,如果对象索引是> 1
我想div
用一个类将它包装起来。
到目前为止,这是我所得到的,但它并没有将所有视频都包含在一个单曲中.main-videos
div
:
谢谢
object.map((object, index) => {
return (
<>
{index === 0 && (
<div className="main-image" >
{<img>}
</div>
)}
{index > 1 && (
<div className="main-videos">
{<video>}
</div>
)}
</>
);
})}
What I basically want to do is this:
object.map((object, index) => {
return (
<>
{index === 0 && (
<div className="main-image" >
{<img>}
</div>
)}
{index === 1 && (<div className="main-videos">)}
{index > 1 && (<video>)}
{index === object.length && (</div>)}
</>
);
})}
解决方案
我会尝试一些不同的方法,如下所示:
<div className={index === 0 ? 'main-image' : 'main-videos'}>
{ index === 0 ? <img /> : <video /> }
</div>
当然缺少必要的属性,但您可以看到逻辑。我喜欢将条件渲染与三元运算符一起使用。从文档中阅读:
条件(三元)运算符是唯一接受三个操作数的 JavaScript 运算符:条件后跟问号 (?),如果条件为真则执行表达式,后跟冒号 (:),最后是表达式如果条件不成立则执行。此运算符经常用作 if 语句的快捷方式。
这样你就不需要React.Fragement <></>
因为你只有一个元素。
推荐阅读
- qt - QLocale::formattedDataSize 函数有没有办法返回翻译量化单位?
- json - Azure + Cosmos DB:
- haskell - Haskell - 为什么 getSymbolicLinkTarget 不在范围内?
- php - PHP / Laravel - 从请求中获取 JSON 输入,动态匹配名称
- javascript - 从父菜单中递归查找所有子项
- svn - 如何版本控制更新已导入的文件?
- android - 将地图库添加到android studio
- sql - 访问 3 个表的完全联接
- php - 基于变量结合字符串搜索分解后的字符串
- ios - 打开其他开发者应用程序需要配置文件