У меня есть компонент, который отображает строки таблицы, и некоторые даты в столбцах уже кэшируются как глобальные данные (загружаются только при запуске), но я получаю следующую ошибку: не могу прочитать свойство '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?