我正在使用i18n开展我的第一个项目,并且我遇到了这个问题。我的客户想要一个导航栏,文本根据当前查看的部分进行扩展。像这样:
因此对于每个标签我都使用如下的FormattedMessages:
<FormattedMessage id="navigation.what"/>
<FormattedMessage id="navigation.how"/>
我从.json文件中获取所有字符串。
现在我在想 - 你知道是否有任何方法可以在FormattedMessage上使用.substring?
这种方法是否有意义,或者我应该在.json中使用不同的字符串来扩展和缩短标签并完成它?
答案 0 :(得分:1)
<FormattedMessage id="navigation.what"/>
组件将始终返回范围。要从react-intl
获取字符串,您应该使用formatMessage()
函数。您可以像使用它一样使用它:
使用injectIntl
高阶组件注入Intl:
import { injectIntl } from 'react-intl';
@injectIntl
class YourComponent extends Component {
...
render () {
...
const {formatMessage} = this.props.intl;
...
<span>{formatMessage(navigation.how).substring()}</span>
通过此功能获取更多详细信息: formatMessage()