从react-intl和typescript一起使用injectIntl的方法如下:
import { injectIntl, FormattedMessage } from 'react-intl';
interface MyComponentProps {
intl: any;
}
class MyComponent extends React.Component<MyComponentProps> {
// ...
}
export default injectIntl(MyComponent);
class MyComponent extends React.Component<MyComponentProps> {
render() {
const { intl } = this.props;
return (
<div>
<FormattedMessage id="greeting" defaultMessage="Hello, {name}!" values={{ name: 'John' }} />
</div>
);
}
}
// messages.json
{
"greeting": "你好,{name}!"
}
// messages.js
export default {
greeting: "你好,{name}!"
};
class MyComponent extends React.Component<MyComponentProps> {
render() {
const { intl } = this.props;
const greeting = intl.formatMessage({ id: 'greeting' }, { name: 'John' });
return (
<div>
{greeting}
</div>
);
}
}
这样,你就可以在React组件中使用react-intl和typescript一起使用injectIntl来实现国际化的文本格式化了。
推荐的腾讯云相关产品:腾讯云国际化服务(Internationalization Service),该服务提供了一站式的国际化解决方案,包括多语言管理、翻译服务、文本资源管理等功能。详情请参考腾讯云国际化服务产品介绍:腾讯云国际化服务。
领取专属 10元无门槛券
手把手带您无忧上云