在 class 上,消息必须可以静态评估以进行提取
Messages must be statically evaluate-able for extraction, on class
我需要在 React class 的方法上添加 formattedMessages。
我们通常将 injectIntl 与 HOC 一起使用并且它可以工作,但我正在使用 React class,我已经尝试了很多方法但仍然出现错误:
Messages must be statically evaluate-able for extraction
如何在 class 中使用格式化消息?
getDisplayText() {
const { placeholder, value } = this.props;
if (!value || value.length === 0) {
return <div>{placeholder}</div>;
}
const messages = defineMessages({
locations: {
id: value.length > 1 ? 'SelectInputGrouped.locationsSelected' : 'SelectInputGrouped.oneLocationSelected',
defaultMessage: '{num} location selected',
values: { num: value.length },
},
});
return (
<div>
<FormattedMessage {...messages.locations} />
</div>
);
}
我的方法是使用 i18n 本身。它支持 plurlas:https://www.i18next.com/translation-function/plurals
我需要在 React class 的方法上添加 formattedMessages。
我们通常将 injectIntl 与 HOC 一起使用并且它可以工作,但我正在使用 React class,我已经尝试了很多方法但仍然出现错误:
Messages must be statically evaluate-able for extraction
如何在 class 中使用格式化消息?
getDisplayText() {
const { placeholder, value } = this.props;
if (!value || value.length === 0) {
return <div>{placeholder}</div>;
}
const messages = defineMessages({
locations: {
id: value.length > 1 ? 'SelectInputGrouped.locationsSelected' : 'SelectInputGrouped.oneLocationSelected',
defaultMessage: '{num} location selected',
values: { num: value.length },
},
});
return (
<div>
<FormattedMessage {...messages.locations} />
</div>
);
}
我的方法是使用 i18n 本身。它支持 plurlas:https://www.i18next.com/translation-function/plurals