遵循语法
const INITIAL_STATE = {
userIsActive: getAccount() ? getAccount().status === "open" : false
};
导致浏览器抛出TypeError: Object(...) is not a function
错误,我指出它是特定于语法的,getAccount()只返回像
{
status: "open"
}
更改为此工作完全正常,甚至返回正确的数据
const accStatus = () => {
try {
return getAccount() ? getAccount().status === "open" : false;
} catch (e) {
console.error(e);
return false;
}
};
const INITIAL_STATE = {
userIsActive: accStatus
};
但我不明白为什么它首先不起作用?
编辑:未触发该catch语句,这是奇数
答案 0 :(得分:2)
在第一个例子中,userIsActive
是一个布尔值,而在第二个例子中,它是一个返回布尔值的函数。这可能会奏效:
const INITIAL_STATE = {
userIsActive: () => getAccount() ? getAccount().status === "open" : false
};