gpt4 book ai didi

reactjs - React-Intl 如何在输入占位符中使用 FormattedMessage

转载 作者:行者123 更新时间:2023-12-03 12:56:23 27 4
gpt4 key购买 nike

我不确定如何从中获取值

<FormattedMessage {...messages.placeholderIntlText} />

转换成占位符格式,如输入:

<input placeholder={<FormattedMessage {...messages.placeholderIntlText} />} />

因为它将在实际占位符中返回 [Object object]。有没有办法获得实际的正确值?

最佳答案

<Formatted... />react-intl中 react 组件旨在用于渲染场景,而不是用于占位符、替代文本等。它们渲染 HTML,而不是纯文本,这在您的场景中没有用处。

相反,react-intl提供lower level API出于完全相同的原因。渲染组件本身在底层使用此 API 将值格式化为 HTML。您的场景可能需要您使用较低级别 formatMessage(...) API。

您应该注入(inject)intl使用 injectIntl 将对象添加到您的组件中HOC,然后通过 API 格式化消息。

示例:

import React from 'react';
import { injectIntl, intlShape } from 'react-intl';

const ChildComponent = ({ intl }) => {
const placeholder = intl.formatMessage({id: 'messageId'});
return(
<input placeholder={placeholder} />
);
}

ChildComponent.propTypes = {
intl: intlShape.isRequired
}

export default injectIntl(ChildComponent);

请注意,我在这里使用了一些 ES6 功能,因此请根据您的设置进行调整。

关于reactjs - React-Intl 如何在输入占位符中使用 FormattedMessage,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39630620/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com