Почему я не могу получить данные из моего JSON-файла в ReactJS?

#javascript #arrays #json #reactjs

#javascript #массивы #json #reactjs

Вопрос:

У меня есть файл JSON (с именем journey0.json), в котором я храню данные, как показано ниже.

 {
"title": "journy title",
"date": "2020",
"homepageImage": "/images/journey1/TravelCardImage",
"introStory": "text",
"introMap": "",
"destinations": [
    {
        "destinationTitle": "Berlijn",
        "destinationStory": "destination story",
        "destinationPreviewImage": "/images/journey1/prague.jpg",
        "destinationImages": [
            {
                "original": "/images/journey1/HomeHeader.jpg",
                "thumbnail": "/images/journey1/HomeHeader.jpg"
            },
            {
                "original": "/images/journey1/HomeHeader.jpg",
                "thumbnail": "/images/journey1/HomeHeader.jpg"
            },
            {
                "original": "/images/journey1/HomeHeader.jpg",
                "thumbnail": "/images/journey1/HomeHeader.jpg"
            },
           ]
       }
   ]
 }
 

Затем я создаю массив всех похожих файлов JSON в другом файле (который .jsx), как показано ниже:

 import * as journey0 from './journey0.json'

export const allJourneysArray = [
    journey0
]

export default allJourneysArray;
 

Я пытаюсь получить доступ к данным, как показано ниже, но по какой-то причине значения остаются неопределенными. Что я делаю не так?

 import JourneyCard from '../journeyCard/JourneyCard';
import allJourneysArray from '../../../journeys/allJourneys';

class HomePageBody extends Component {
    render() {

        let journeyCards = [];

        for (var x in allJourneysArray) {
            journeyCards.push(
                <Link style={this.styles.link} to={'/'   x}>
                    <JourneyCard
                        title={allJourneysArray[x].title}
                        date={allJourneysArray[x].date}
                        homepageImage={allJourneysArray[x].homepageImage}/>
                </Link>
            )
        }

        return(
            <div style={this.styles.container}>
                <div style={this.styles.cardContainer}>
                    {journeyCards}
                </div>
            </div>
        );
    }
 

Ответ №1:

Попробуйте: import journey0 from './journey0.json'

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

1. Для этого мне потребуется импортировать каждый новый файл journey (journey1.json, journey2.json и т.д.) Во все места, где я хочу использовать данные. Есть ли лучший подход?