首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何将RectIntl格式的消息添加为html属性

如何将RectIntl格式的消息添加为html属性
EN

Stack Overflow用户
提问于 2020-10-01 08:28:18
回答 2查看 1.3K关注 0票数 1

我有一个标题徽标图像,其alt和标题属性应从i18n消息呈现。

message_en.json

代码语言:javascript
运行
复制
{
    "logoTitle": "Link open in new tab or window",
    "logoAlt": "some description goes here.." 
}

header.js

代码语言:javascript
运行
复制
import { FormattedMessage } from 'react-intl/dist';

<a
  href={url}
  title={<FormattedMessage id="logoTitle"/>}
> 
  <img
      src={src}
      alt={<FormattedMessage id='logoAlt' />}
  />
</a>

在浏览器中,alt和title呈现为对象

代码语言:javascript
运行
复制
<a title="[object Object]">
    <img id="masthead__logo__img" src="../assets/images/logo.png" alt="[object Object]">
</a>  

在这种情况下,如何呈现FormattedMessage?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2020-10-01 08:32:53

FormattedMessage是一个呈现超文本标记语言的React组件。要呈现普通字符串,请改用intl.formatMessage函数:

代码语言:javascript
运行
复制
title={intl.formatMessage({ id: 'logoTitle' })}
票数 1
EN

Stack Overflow用户

发布于 2020-10-01 08:46:30

潜在的解决方案

使用useIntl挂钩呈现一个普通字符串。

代码语言:javascript
运行
复制
import { useIntl } from 'react-intl'; 

const intl = useIntl(); // place this within your function / class.
代码语言:javascript
运行
复制
<a
  href={url}
  title={intl.formatMessage({ id: 'logoTitle' })} />}
> 
  <img
      src={src}
      alt={intl.formatMessage({ id: 'logoAlt' })} />}
  />
</a>

调试

您可以在属性外部执行console.log(intl.formatMessage({ id: 'logoTitle' });,以查看为该标识符提取的值是什么。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/64147538

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档