Задать вопрос
@uzi_no_uzi

Как рендерить определенную разметку в зависимости от условия?

Имеется такой React компонент, меняет разметку в зависимости от условия(в примере разметка одинаковая, т.к. тестил, еще не успел поменять), не хочется выносить другую разметку в отдельный компонент, т.к. по сути используются одни и те же данные да и это одна логическая часть, нет смысла выносить.

Но я получаю ошибку:

5c2f8d21edbaa554907146.jpeg

https://codepen.io/anon/pen/KboVLm?editors=1010
  • Вопрос задан
  • 166 просмотров
Подписаться 1 Простой Комментировать
Решение пользователя 0xD34F К ответам на вопрос (2)
0xD34F
@0xD34F Куратор тега React
switch(this.props.cardType) {

Нет, так не надо. Лучше сделайте объект, где ключами будут вот эти cardType, а значениями - вынесенные в отдельные компоненты куски кода из case'ов. Тогда логика выбора что рендерить сократится до... В общем, совсем коротко и просто получится:

const Component = components[this.props.cardType];
return Component && <Component {...this.props} />;

https://jsfiddle.net/ptm0zay7/1/
Ответ написан
Комментировать