React Intl-无法读取未定义的属性'formatMessage'

时间:2019-02-11 09:14:08

标签: reactjs react-redux react-intl

  ....
 const func1 = (intl) => {
  const text = intl.formatMessage({id: 'mesage'});
  const func2 = () => {
     return {
      <div>.....
      placeholder={text}</div>
   };
  };
    return {
   <div>.....
   {func2()}</div>
  };
 };

使用styles(styles)(injectIntl​​(component));导出默认值;`}

我正在尝试使用react-intl库来注入Intl来翻译字符串,但我不断收到以下错误:

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

我正在尝试执行以下操作: React-Intl How to use FormattedMessage in input placeholder

2 个答案:

答案 0 :(得分:1)

您可以使用这种方式..!

PlaceHolder Antd的最简单解决方案。

    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 :(得分:0)

您可以使用ItemNameprops.intl.formatMessage({id: 'mesage'});对象包含在道具中。

进一步假设intl被包裹,

Mycomponent