ObservableMap (mobx) возвращает неопределенное в представлениях - PullRequest
0 голосов
/ 22 мая 2019

У меня есть компонент, который отображает строки таблицы, и некоторые даты в столбцах уже кэшируются как глобальные данные (загружаются только при запуске), но я получаю следующую ошибку: не могу прочитать свойство 'name' из undefined в строке 49 (проверьте комментарии в заданных частях кода).

Компонент (упрощенный):

const ApplicantRow = observer((props: ApplicantRowProps): React.ReactElement<any> => {
    const step = props.sandbox.globalData.cachedSteps.get(props.step.toString())
    return (
        <div className="row">
            <div className="cols">
                // ... some cols
                <div className="col col-1of7">
                    <span>{`${props.step}. ${step.name}`}</span> // line 49, step is undefined but why?
                </div>
            </div>
        </div>
    )
})

и класс globalDate:

class GlobalData implements jc.GlobalData {
    @observable public cachedSteps: ObservableMap<string, CachedStep> = observable.map()

    // This method is called when steps are fetched from a server and steps are passed as an argument
    public setCachedSteps(data: any): void {
        runInAction(() => {
            const steps = observable.map(data)
            this.cachedSteps = steps
        })
    }
}

Я пытался установить точку останова в методе setCachedSteps, чтобы убедиться, что он вызывается перед компонентом ApplicantRow, что означает, что в globalDate.cachedSteps есть данные, и странно, почему возвращается undefined?

...