Estoy trabajando en React y encontré un error de tipo indefinido. Entonces, para hacer esto, hice lo siguiente, que fue introducir el || {}
en la declaración de devolución. Básicamente, resuelve el problema en el que ya no arroja un error de tipo, sin embargo, ahora hay un error en el que muestra un estado vacío, aunque hay datos. Creo que los datos se cargaron lentamente. Hay alguna manera
Tu {}
no tiene sentido donde está.
return amountByCurrency.find(acct => acct.id === currentAccountId || {}).assets;
La devolución de llamada es:
acct => acct.id === currentAccountId || {}
Entonces, con el primer elemento de la matriz, se cumple acct.id === currentAccountId
y la devolución de llamada devuelve verdadero, o vuelve a {}
y los objetos son verdaderos, por lo que la devolución de llamada devuelve, y el primer elemento de la matriz es el elemento "encontrado" resultante.
Si no existen elementos en la matriz, se generará un error, porque no hay nada sobre lo que iterar. El objeto vacío en la devolución de llamada no hace nada más que romper la lógica .find
.
En su lugar, deberías hacer algo como
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; }