你如何在 react-intl 中传递一个参数来定义消息?

ree*_*rix 8 javascript reactjs react-intl

我有一条如下所示的错误消息:

Could not retrieve data: ${e}

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

一个标准的definedMessage:

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

谢谢!

Tom*_*zyk 14

如果我正确理解你是这样的:

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

<FormattedMessage
  {...messages.dataError}
  values={{message: `Could not retrieve data: ${e}`}}
/>
Run Code Online (Sandbox Code Playgroud)


USS*_*USS 10

需要更换[default message]{e}defineMessages

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

定义消息变量

 const message = "Error Message";
Run Code Online (Sandbox Code Playgroud)

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

 <FormattedMessage
          {...messages.dataError}
          values={{ e: `${message}` }}
 />
Run Code Online (Sandbox Code Playgroud)

在下面放入

<span>Could not retrieve data: Error Message</span>
Run Code Online (Sandbox Code Playgroud)

希望它会帮助你。