我正在尝试构建一个按钮组件,该组件能够在元素子项之前和之后设置图标。
因此,属性如下:
export interface IButtonProps {
children?: React.ReactNode;
leftIcon?: FontAwesomeIcon;
rightIcon?: FontAwesomeIcon;
}
FontAwesomeIcon
是一个枚举类型,用来保存可用的图标。
在按钮的 render
函数中,我会检查是否设置了图标。如果有图标,则应该在子元素和图标之间放置一个空格。
render(): JSX.Element {
let { children, leftIcon, rightIcon } = this.props;
return (
<button>
{leftIcon && <FontAwesome icon={leftIcon} />}
{leftIcon && " "}
{children}
{rightIcon && " "}
{rightIcon && <FontAwesome icon={rightIcon} />}
</button>
);
}
尽管这个解决方案可行,但我想知道是否有比检查两次设置图标更简单的方法。此外,我想使用
代替
。
有没有办法转义空格,以便我可以编写像{leftIcon && <FontAwesome icon={leftIcon} /> }
这样的内容?我尝试了
{leftIcon && <FontAwesome icon={leftIcon} />{"&nsbp;"}}
或{leftIcon && <FontAwesome icon={leftIcon} />{&nsbp;}}
,但会导致
TS1005:需要“}”。