Obtengo el valor de "dirección" del backend. Sin embargo, el valor entrante está todo en mayúsculas. Solo quiero que las primeras letras estén en mayúsculas. Logré esto. Pero recibo un error cuando no aparece el valor de "dirección".
const upperCaseFirstLetter = (string) => `${string.slice(0, 1).toUpperCase()}${string.slice(1)}`; const lowerCaseAllWordsExceptFirstLetters = (string) => string.replaceAll(/\S*/g, (word) => `${word.slice(0, 1)}${word.slice(1).toLowerCase()}` ); let address = ''; address = upperCaseFirstLetter(lowerCaseAllWordsExceptFirstLetters(props.policy.assets.address));html
<div className="policycard__subinfo"> {props.policy.assets.address ? (t('policy.policy-cards.address') + address) : null} </div>El error en la consola es el siguiente; No se pueden leer las propiedades de undefined (leyendo 'replaceAll').
Probablemente haya una mejor manera, pero cada vez que me encuentro con un error como ese, me gusta darle un valor predeterminado:
const lowerCaseAllWordsExceptFirstLetters = (string) => { return (string || '').replaceAll(/\S*/g, (word) => `${word.slice(0, 1)}${word.slice(1).toLowerCase()}` } de modo que si la string no está definida, en su lugar se trata como una cadena vacía y evita el error.