使用React Intl和Typescript

时间:2017-07-20 08:57:25

标签: typescript react-intl

我有一个使用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;

但是,infoJSX.Element,而不是string

有没有办法做这样的事情?

2 个答案:

答案 0 :(得分:1)

我明白了。

const id: string = 'id';
const componentToBeRenderedIfIdHasValue = ...;

<FormattedMessage id={id}>
    {
        (message: string) =>
            message === id
            ? null
            : componentToBeRenderedIfIdHasValue
    }
</FormattedMessage>

我希望这对某人有帮助。

答案 1 :(得分:0)

对于JS

const stringExists = !!this.props.intl.messages[id];

如回答here