javascript - 条件内容如果状态值
问题描述
我目前有两种成功的方法来基于我的数据 API 显示地图标记。此代码显示地图上的所有地图标记:
/// Working Code Option 1 (No Filters) ///
this.state = {
filterCrime: '',
posts: []
}
{this.state.posts.map((user, index)=> {
return (
<MapView.Marker key={user.ID} coordinate={{latitude: user.lat, longitude: user.lng}} />
);
})}
此代码根据 filterCrime 值成功过滤标记,并且有效。
/// Working Code Option 2 (With Category Filters) ///
this.state = {
filterCrime: '',
posts: []
}
{this.state.posts.map((user, index)=> {
if(user.category == this.state.filterCrime ){
return (
<MapView.Marker key={user.ID} coordinate={{latitude: user.lat, longitude: user.lng}} />
);
}})}
我的问题是:如果 filterCrime 值为空,我也想显示选项 1,它显示所有地图标记,否则,如果 filterCrime 状态有一个值,我想显示选项 2 并仅显示过滤标记。
解决方案
因此,只需对过滤器是否存在进行条件处理。
{this.state.posts.map((user, index)=> {
if ( !this.state.filterCrime || user.category == this.state.filterCrime ) {
return <MapView.Marker key={user.ID} coordinate={{latitude: user.lat, longitude: user.lng}} />
}
return null
})}
推荐阅读
- javascript - 如何检索对象属性,但如果它未定义,也可以设置它,不重复
- python - 如何使用 ML 算法从数据的现有特征中对数据进行评分或排名(作为新列)?
- javascript - 如何在这里使用解构?
- python - 在matplotlib中创建一个上下边缘的矩形补丁
- vue.js - 在具有绑定值的选择上使用 :selected 绑定
- reactjs - 如何在组选择(Ag-Grid React)的 chlid 行中添加静态标题?
- api - 无法从 Laminas API 工具中的管理 UI 创建新 API
- drake - Autodiff 清除渐变
- c++ - 使用 makefile 构建和运行时出现“运行时错误 2”
- javascript - 尝试更新 Firebase 实时数据库时出错