@kiberchainik
начинающий найкрутейшЫй програмЁр

Почему получаю undefined из стора?

файл стора
import { makeAutoObservable } from "mobx";
import HomeService from "../services/HomeService";
import axios from "axios";
import { IErrRegister } from "../models/response/ErrorsRegistration";
import { IHome } from "../models/IHome";

class HomeStore {
    content = {} as IHome
    isLoading = false
    errorsMsg = {} as IErrRegister

    constructor() {
        makeAutoObservable(this) //данная функция делает стор наблюдаемым
    }

    setHomeContent(content:IHome) {
        this.content = content
    }

    setLoading(bool: boolean) {
        this.isLoading = bool
    }

    setErrorMsg(error:IErrRegister) {
        this.errorsMsg = error
    }

    async getHomeContent () {
        this.setLoading(true)
        try {
            const res = await HomeService.getHomeContent()
            this.setHomeContent(res.data)
        } catch (err) {
            if (axios.isAxiosError(err)) {
                this.setErrorMsg(err.response?.data)
            } else {
                console.log('Unexpected error', err);
            }
        } finally {
            this.setLoading(false)
        }
    }
}

const HC = new HomeStore()
export default HC


файл экшена
import $api from "../http";
import {AxiosResponse} from 'axios'
import { IHome } from "../models/IHome";

 export default class HomeService {
    static async getHomeContent(): Promise<AxiosResponse<IHome>> {
        return $api.get<IHome>('/') 
    }
}


файл вывода данных на страницу
import { observer } from 'mobx-react-lite'
import React from 'react'
import { Context } from '..'
import { IResume } from '../models/IResume'
import { IVacancy } from '../models/IVacancy'

const HomePage:React.FC = () => {
  const [candidats, setCandidats] = React.useState<IResume[]>([])
  const [vacancies, setVacancies] = React.useState<IVacancy[]>([])
  const {store:{homeContent}} = React.useContext(Context)

  React.useEffect(() => {
    homeContent.getHomeContent()
    setCandidats(homeContent.content.resume)
    setVacancies(homeContent.content.vacancy)
  }, [homeContent])

  console.log(candidats)
  console.log(vacancies)

  return (
    <div>HomePage</div>
  )
}

export default observer(HomePage)


в сторе в функцию async getHomeContent приходит ответ от сервера и далее я передаю ответ в content = {} as IHome но в HomePage при выводе не понимаю почему в консоле получаю console.log(candidats) // undefined
  • Вопрос задан
  • 111 просмотров
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы
23 нояб. 2024, в 01:31
1000 руб./за проект
23 нояб. 2024, в 00:16
2000 руб./за проект
22 нояб. 2024, в 23:55
3000 руб./за проект