Как динамически отображать карты в React Semantic UI

Я сопоставил свой магазин избыточности с реквизитом, но теперь у меня проблемы с его динамическим рендерингом. Я также пробовал синтаксис projectCards(){...}, но это был полный выстрел в темноте. Мои журналы консоли показывают, что объекты проходят так, как я хочу. Я также пытался использовать projects.map, но не думаю, что хочу помещать возвращаемые значения в новый массив. Я просто хочу больше элементов <Card/> на странице, отображаемых динамически. Где я ошибся? Любая помощь будет оценена по достоинству.

Class Projects extends...
.
.
.
 projectCards = () => {
  if ( this.props.projects.length !== 0 ) {
   this.props.projects.forEach((project) => {
     return <Card fluid color='green' header={project.name} />
  })
 }
}

 render(){
  return(
    <Container>
      <br/>
      <Card.Group>
        <Card fluid color='green' header='Option 1' />
        <Card fluid color='blue' header='Option 2' />
        <Card fluid color='red' header='Option 3' />
        { this.projectCards() }
      </Card.Group>
    </Container>
  )
 }
}

person user4396386    schedule 02.10.2018    source источник
comment
Используйте .map() вместо .forEach(). Некоторые прошлые полезные ответы StackOverflow по этому поводу: .com/questions/47442462/, stackoverflow.com/questions/42460357/   -  person Andy Taton    schedule 02.10.2018


Ответы (1)


Попробуй это:

projectCards = () => {
  if ( this.props.projects.length !== 0 ) {
    return this.props.projects.map( project => 
       <Card fluid color='green' header={project.name} />
    )
  }
}
person Nguyen You    schedule 02.10.2018
comment
Это сработало! Итак, я хотел вернуть массив <Card>s? - person user4396386; 02.10.2018
comment
Понятно! Однако как вы думаете, возможно ли заставить функцию возвращать значение более одного раза? После возврата первого Card component дело сделано! Остальные компоненты Карты не оживут. Кстати, почему ты не хочешь return an array of <Card>s - person Nguyen You; 02.10.2018
comment
Неплохо подмечено. Сегодня я уже не в первый раз пробовал использовать несколько операторов return в одной и той же функции! - person user4396386; 02.10.2018
comment
Я не могу это отредактировать, но в вашем посте не хватает завитка. Спасибо за вашу помощь. - person user4396386; 02.10.2018