React.Intl 来自 <FormattedMessage> 的子字符串
React.Intl substring from <FormattedMessage>
我正在使用 i18n 进行我的第一个项目,我已经 运行 解决了这个问题。我的客户想要一个导航栏,其中的文本会根据当前查看的部分展开。像这样:
所以对于每个标签,我都使用这样的 FormattedMessages:
<FormattedMessage id="navigation.what"/>
<FormattedMessage id="navigation.how"/>
我从 .json 文件中获取所有字符串。
现在我在想 - 你知道是否有 在 FormattedMessage 上使用 .substring 的方法吗?
此外,这种方法是否有意义,或者我应该使用不同的字符串来扩展和缩短 .json 中的标签并完成它?
<FormattedMessage id="navigation.what"/>
组件将始终 returns 一个跨度。要从 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()
我正在使用 i18n 进行我的第一个项目,我已经 运行 解决了这个问题。我的客户想要一个导航栏,其中的文本会根据当前查看的部分展开。像这样:
所以对于每个标签,我都使用这样的 FormattedMessages:
<FormattedMessage id="navigation.what"/>
<FormattedMessage id="navigation.how"/>
我从 .json 文件中获取所有字符串。
现在我在想 - 你知道是否有 在 FormattedMessage 上使用 .substring 的方法吗?
此外,这种方法是否有意义,或者我应该使用不同的字符串来扩展和缩短 .json 中的标签并完成它?
<FormattedMessage id="navigation.what"/>
组件将始终 returns 一个跨度。要从 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()