Javascript 状态值时的条件内容
我目前有两种基于我的数据API显示地图标记的成功方法。此代码显示地图上的所有地图标记:Javascript 状态值时的条件内容,javascript,reactjs,Javascript,Reactjs,我目前有两种基于我的数据API显示地图标记的成功方法。此代码显示地图上的所有地图标记: /// Working Code Option 1 (No Filters) /// this.state = { filterCrime: '', posts: [] } {this.state.posts.map((user, index)=> { return ( <MapView.Marker key={user.ID} co
/// 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
})}
在阵列上使用映射之前对其进行筛选 this.state={filterCrime:,posts:[]} 让filteredPosts=this.state.posts 如果过滤犯罪{ filteredPosts=filteredPosts.filterpost=>post.category===this.state.filterCrime } /*从代码选项1映射*/