引入以下内容以避免反应中的未定义类型错误导致奇怪的错误
Introducing the folowing to avoid undefined TypeError in react causes a weird bug
我在 React 工作时遇到了一个未定义的类型错误。为此,我做了以下操作,即在 return 语句中引入 || {}
。它基本上解决了不再抛出类型错误的问题,但是,现在有一个错误,即使有数据,它也会呈现空状态。我认为数据加载缓慢。有什么办法
你的 {}
放在哪里没有意义。
return amountByCurrency.find(acct => acct.id === currentAccountId || {}).assets;
回调为:
acct => acct.id === currentAccountId || {}
因此,对于数组的第一个元素,要么满足 acct.id === currentAccountId
,回调 returns 为真,要么回落到 {}
,对象为真,所以回调 returns - 数组的第一个元素是结果“找到”的项目。
如果数组中不存在任何项目,则会抛出错误,因为没有可迭代的内容。回调中的空对象除了破坏 .find
逻辑外没有做任何事情。
你应该做类似的事情
filterCurrencyBalances() {
const { amountByCurrency, amountByAsset, currentAccountId } = this.props;
if (currentAccountId) {
const foundAcct = amountByCurrency.find(acct => acct.id === currentAccountId);
return foundAcct ? foundAcct.assets : 0; // replace 0 with the desired default balance for no account
}
return amountByAsset;
}
我在 React 工作时遇到了一个未定义的类型错误。为此,我做了以下操作,即在 return 语句中引入 || {}
。它基本上解决了不再抛出类型错误的问题,但是,现在有一个错误,即使有数据,它也会呈现空状态。我认为数据加载缓慢。有什么办法
你的 {}
放在哪里没有意义。
return amountByCurrency.find(acct => acct.id === currentAccountId || {}).assets;
回调为:
acct => acct.id === currentAccountId || {}
因此,对于数组的第一个元素,要么满足 acct.id === currentAccountId
,回调 returns 为真,要么回落到 {}
,对象为真,所以回调 returns - 数组的第一个元素是结果“找到”的项目。
如果数组中不存在任何项目,则会抛出错误,因为没有可迭代的内容。回调中的空对象除了破坏 .find
逻辑外没有做任何事情。
你应该做类似的事情
filterCurrencyBalances() {
const { amountByCurrency, amountByAsset, currentAccountId } = this.props;
if (currentAccountId) {
const foundAcct = amountByCurrency.find(acct => acct.id === currentAccountId);
return foundAcct ? foundAcct.assets : 0; // replace 0 with the desired default balance for no account
}
return amountByAsset;
}