我有一个使用React Intl和TypeScript的应用程序。
我想显示一个包含一些信息文本的框,我希望只有文本实际存在时才显示。
但我做不到
<FormattedMessage id="my.id" />
因为如果my.id
没有值,React Intl将回退到消息ID,即my.id
。
所以我试图做的是
const myId: string = 'myId';
const info: string = <FormattedMessage id={myId} />;
const infoExists: boolean = myId === info;
但是,info
为JSX.Element
,而不是string
。
有没有办法做这样的事情?
答案 0 :(得分:1)
我明白了。
const id: string = 'id';
const componentToBeRenderedIfIdHasValue = ...;
<FormattedMessage id={id}>
{
(message: string) =>
message === id
? null
: componentToBeRenderedIfIdHasValue
}
</FormattedMessage>
我希望这对某人有帮助。
答案 1 :(得分:0)