根据条件将值打印到屏幕

print value to screen according to condition

我正在从后端获取“地址”值。但是,传入的值都是大写的。我只希望第一个字母大写。我做到了这一点。但是当“地址”值没有出现时我得到一个错误。

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>

控制台报错如下; 无法读取未定义的属性(读取 'replaceAll')。

可能有更好的方法,但每当我 运行 遇到这样的错误时,我只想给它一个默认值:

const lowerCaseAllWordsExceptFirstLetters = (string) => {
    return (string || '').replaceAll(/\S*/g, (word) => `${word.slice(0, 1)}${word.slice(1).toLowerCase()}`
}

这样,如果 string 未定义,它就会被视为空字符串,从而避免错误。