Javascript 状态值时的条件内容

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

我目前有两种基于我的数据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
})}

在阵列上使用映射之前对其进行筛选

this.state={filterCrime:,posts:[]} 让filteredPosts=this.state.posts 如果过滤犯罪{ filteredPosts=filteredPosts.filterpost=>post.category===this.state.filterCrime } /*从代码选项1映射*/