Search code examples
reactjsreact-intl

React-intl const <FormattedMessage /> is giving [object object] as result


I am using "react-intl": "^2.4.0", and "react": "^16.2.0".

I am trying to assign the output of <FormattedMessage/> tag to a constant and put it in the input tag placeholder.

Code Image

Expected Output Input field with text in the respective language in it but it is coming [object object] inside the text box.


Solution

  • <FormattedMessage /> is a component which cannot be placed to placeholder which expects a raw String.

    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);