Sto imparando ad usare ReactJS e mi esercito convertendo una webapp che ho realizzato qualche tempo fa.
In una pagina ho una timeline le cui righe iniziano con un'icona che descrive visivamente l'attività relativa.
In totale ho 27 possibili attività, quindi 27 icone, ma non tutte vengono usate all'interno di una determinata timeline.
L'unico sistema che ho visto fin'ora è quello di importare TUTTE le immagini, una per una con
import mountain from '../assets/img/icons/mountain_icon.png';
import museum from '../assets/img/icons/museum_icon.png';
ecc...
all'inizio del componente
poi nella funzione render() usando il nome dell'icona in modo "hardcoded"
<img src={museum} .../>
funziona, {museum} viene rimpiazzato con l'icona da mostrare, ma ci sono 2 problemi:
1) mettere 27 import all'inizio del file, compresi quelli per immagini che non saranno usate, mi pare un grande spreco
2) l'immagine da inserire non la so a priori, ma il suo nome è contenuto in un array sul quale ciclo per generare le varie attività ed usando il contenuto dell'array non funziona
Non usando un nome hardcoded faccio in questo modo
<img src={this.props.activity.action_icon} ... />
this.props.activity.action_icon contiene il nome giusto, quindi mountain, museum... ma così facendo non viene richiamata l'immagine, ispezionando il codice HTML della pagina generata leggo esattamente
<img src={museum} ... />
Come si procede in un caso simile?