引入以下内容以避免反应中的未定义类型错误导致奇怪的错误

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;
}