首页 > 解决方案 > 条件内容如果状态值

问题描述

我目前有两种成功的方法来基于我的数据 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 并仅显示过滤标记。

标签: javascriptreactjs

解决方案


因此,只需对过滤器是否存在进行条件处理。

{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
})}

推荐阅读