首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >React Intl-无法读取未定义的属性“”formatMessage“”

React Intl-无法读取未定义的属性“”formatMessage“”
EN

Stack Overflow用户
提问于 2019-02-11 17:14:08
回答 2查看 4.9K关注 0票数 0
代码语言:javascript
复制
  ....
 const func1 = (intl) => {
  const text = intl.formatMessage({id: 'mesage'});
  const func2 = () => {
     return {
      <div>.....
      placeholder={text}</div>
   };
  };
    return {
   <div>.....
   {func2()}</div>
  };
 };

导出默认样式(WithStyles)(injectIntl(组件));`}

我正在尝试使用react-intl库将字符串转换为injectIntl,但我一直收到以下错误:

“无法读取未定义的属性'formatMessage‘”

我正在尝试这样做:React-Intl How to use FormattedMessage in input placeholder

EN

回答 2

Stack Overflow用户

发布于 2020-08-03 23:21:26

您可以这样使用..!

是PlaceHolder和最简单的解决方案

代码语言:javascript
复制
    import {injectIntl} from "react-intl";

    class DemoForm extends React.Component {
        render() {
            const {getFieldDecorator} = this.props.form;
            const {intl} = this.props;
            const placeholder = intl.formatMessage({id:'enterHere'});
            return (
                <Form.Item label={<FormattedMessage id='name'/>}>
                    {getFieldDecorator('name',)(<Input placeholder={placeholder}/>)}
                </Form.Item>
            )
       }
}
export const Demo = injectIntl(Form.create()(DemoForm));
票数 1
EN

Stack Overflow用户

发布于 2019-02-11 17:15:58

你可以使用props.intl.formatMessage({id: 'mesage'});intl对象包含在props中。

进一步假设Mycomponent已经包装好了:

代码语言:javascript
复制
const MyComponent = ({intl}) => { // we are extracting intl from prop object
// component code here
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/54627173

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档