Могу ли я определить, нужно ли проверять текущий индекс внутри карты

#javascript #typescript

Вопрос:

У меня есть код сценария следующего типа:-

 export default class SingleNews extends React.Componentlt;INews, {}gt; {  public render(): React.ReactElementlt;INewsgt; {  return (  lt;gt;  {this.props.featured  ? this.props.recentNews.map(post =gt; (    lt;a  className={styles.singleNews}  href={post.link}  key={post.Title}  gt;  lt;div  className={styles.singleNews__image}  style={{ backgroundImage: `url(${post.image})` }}  /gt;  lt;div className={styles.singleNews__content}gt;  lt;div className={styles.singleNews__content__info}gt;  lt;span className={styles.singleNews__content__info__label}gt;{post.Featured}lt;/spangt;  lt;span className={styles.singleNews__content__info__date}gt;  {post.date}  lt;/spangt;lt;/divgt;  lt;/divgt;  lt;div className={styles.singleNews__content}gt;  lt;div className={styles.singleNews__content__info}gt;    lt;h2 className={styles.singleNews__content__info__title}gt;  {post.Title}  lt;/h2gt;       {post.likes ? (  lt;div  className={styles.singleNews__content__info__reactions}  gt;  lt;span  className={  styles.singleNews__content__info__reactions__likes  }  gt;  lt;Icon iconName='Like' /gt;  {post.likes}  lt;/spangt;  lt;spangt;  lt;Icon iconName='ActionCenter' /gt;  {post.coments}  lt;/spangt;  lt;/divgt;  ) : null}  lt;/divgt;  lt;/divgt;  lt;/agt;    ))  

но мне нужно проверить текущий индекс и соответственно отобразить другой html .. если я попробую это сделать, я получу эту ошибку:-

 export default class SingleNews extends React.Componentlt;INews, {}gt; {  public render(): React.ReactElementlt;INewsgt; {  return (  lt;gt;  {this.props.featured  ? this.props.recentNews.map((post,index) =gt; (  if(index=0)  

я получил «ожидаемое выражение» на if ? есть какие-нибудь советы?

Комментарии:

1. Вы используете синтаксис типа: Array.map(v=gt; ({value here})) , который возвращает значение напрямую. Вместо этого вы должны использовать синтаксис : Array.map(v=gt; { some statements here and then; return {value here};}

2. @Эльдар, можешь дать еще один совет .. как я могу изменить свой код?

Ответ №1:

Проблема в том, что у вас есть оператор в качестве тела для вашей функции стрелки (что раньше было нормально).

Так как теперь вам нужно добавить if для проверки индекса, вам нужен блок:

 {this.props.featured  ? this.props.recentNews.map((post,index) =gt; { // lt;-- this  if(index=0) {   // etc  }  return lt;agt; .... lt;/agt;  } }