Код выглядит следующим образом:
if(typeof state.getId().stateId !== "undefined") {
console.log("Not undefined");
} else {
console.log("Undefined");
}
Я продолжаю получать эту ошибку: TypeError: Не удается прочитать свойство stateId
Что я делаю неправильно?
Проблема в том, что state.getId() сам по себе не определен; и таким образом получить свойство stateId state.getId() было проблемой. Это не то же самое, что и другой вопрос, потому что a) не сразу стало ясно, что.getId(). StateId было свойством неопределенного.
пытаться
if(!state || !state.getId() || typeof state.getId().stateId === "undefined") {
console.log("Undefined");
} else {
console.log("Not undefined");
}
Если какое-либо состояние или значение, возвращаемое вызовом getId, не определены, вы получите сообщение об ошибке. Короткое замыкание или тест поймают его и перестанут пытаться получить доступ к объекту на неопределенный, что является причиной вашей ошибки.
проверьте, state.getId()
ли state.getId()
правдиво, затем проверьте его свойство
if (state.getId() && state.getId().stateId !== "undefined") {
console.log("Not undefined");
} else {
console.log("Undefined");
}
Проверьте, существует ли state
, затем проверьте, что state.getId
является функцией:
if (typeof state == "object" &&
typeof state.getId == "function" ) {
var id = state.getId();
console.log("stateId=",id.stateId);
} else {
console.log("Undefined");
}
Для получения дополнительной информации см.