首页 > 解决方案 > 反应国际常量正在给出 [object object] 作为结果

问题描述

我正在使用"react-intl": "^2.4.0", 和"react": "^16.2.0".

我正在尝试将<FormattedMessage/>标签的输出分配给一个常量并将其放在输入标签占位符中。

代码图像

预期的输出输入字段,其中包含相应语言的文本,但它在文本框中出现 [object object]。

标签: reactjsreact-intl

解决方案


<FormattedMessage />是一个无法放置的组件,placeholder它需要一个原始字符串。

import {injectIntl} from 'react-intl'; 

class TestComponent extends React.Component{
  render(){
    const { intl } = this.props;
    return (
        <input placeholder={intl.formatMessage({ id: "loginPage.username", defaultMessage: 'username'})}/>
    )
  }
}

export default injectIntl(TestComponent);

推荐阅读