检查此链接以获取更多信息。
消息格式化回退 消息格式化 API 更加努力地为格式化失败的常见情况提供回退;至少应始终返回一个非空字符串。这是消息格式回退算法:
在 id 处查找并格式化翻译的消息,传递给 .
- 回退到格式化 defaultMessage。
- 回退到 id 源的已翻译消息。
- 回退到 defaultMessage 源。
- 回退到文字消息 ID。
假设您有一条具有 id 的消息: message_one_id 并且您想将第二条消息连接到其中。
如果您有,您的 Messages json 文件如下所示。或者我正在用 defaultMessages 做下面的例子。
{
message_one_id: "Unread ({loading})",
loading: "Loading...",
}
您可以使用以下方法:
<FormattedMessage id="message_one_id"
defaultMessage="Unread ({loading})"
values={{
loading: <FormattedMessage
id="loading"
defaultMessage="Loading..."
/>
}}
/>
这将输出:
Unread (Loading...)
您甚至可以使用它来动态打印消息:
class NotificationCount extends React.Component {
constructor(props) {
this.state = {
notification: []
};
}
componentDidMount() {
const notifications = [
{"id": "1", msg: "hello"},
{"id": "2", msg: "world"}
];
this.setState({notification: notifications});
}
render() {
return (
<FormattedMessage id="message_one_id"
defaultMessage="Unread ({loading})"
values={{
loading: `${this.state.notification.length}`
}}
/>
);
}
}
这将输出:
Unread (2)