【问题标题】:How do you pass a parameter to defineMessages in react-intl?你如何将参数传递给react-intl中的defineMessages?
【发布时间】:2018-10-22 05:38:57
【问题描述】:

我收到如下错误消息:

Could not retrieve data: ${e}

如何将其转换为可以接受此错误参数的definedMessage?

一个标准的定义消息:

    const messages = defineMessages({
     dataError: {
         id: 'data.error',
         defaultMessage: 'Could not retrieve data: [default message]'
     }
   })

谢谢!

【问题讨论】:

    标签: javascript reactjs react-intl


    【解决方案1】:

    如果我这样理解你的话:

    const messages = defineMessages({
      dataError: {
        id: 'data.error',
        defaultMessage: 'Could not retrieve data: {message}'
      }
    })
    
    <FormattedMessage
      {...messages.dataError}
      values={{message: `Could not retrieve data: ${e}`}}
    />
    

    【讨论】:

      【解决方案2】:

      需要将defineMessages中的[default message]替换为{e}

      const messages = defineMessages({
        dataError: {
          id: 'data.error',
          defaultMessage: 'Could not retrieve data: {e}'
        }
      })
      

      定义消息变量

       const message = "Error Message";
      

      在格式化消息中传递消息变量

       <FormattedMessage
                {...messages.dataError}
                values={{ e: `${message}` }}
       />
      

      在下面输出

      <span>Could not retrieve data: Error Message</span>
      

      希望对你有帮助。

      【讨论】:

      • @reectrix,如果我的回答对你有帮助,请投票。
      【解决方案3】:

      这可以做得更简单。 例如 'launcher.question' 可能类似于

      'launcher.question': '亲爱的 {e} 告诉我们'

      【讨论】:

        猜你喜欢
        • 2021-08-29
        • 2010-09-10
        • 1970-01-01
        • 2022-01-06
        • 2015-08-16
        • 2022-06-15
        • 2020-01-09
        • 1970-01-01
        • 2020-02-24
        相关资源
        最近更新 更多