如何在反应中链接标签

Posted

技术标签:

【中文标题】如何在反应中链接标签【英文标题】:How to linkify hashtag in react 【发布时间】:2019-11-28 16:28:47 【问题描述】:

我使用带有标签插件的 linkify-react 模块

import Linkify from 'linkifyjs/react';
import * as linkify from 'linkifyjs';
import hashtag from 'linkifyjs/plugins/hashtag';
hashtag(linkify);

我没有找到任何解决方案让主题标签链接直接在 jsx 组件中工作,有可能吗?

   <Linkify options=linkifyOptions >content</Linkify>

另外,我正在尝试使用该插件。 Whit插件我检索了内容中所有主题标签的数组

const pTag = linkify.find(p.content || '');

// here the output

  "type": "hashtag",
  "value": "#tag",
  "href": "#tag"


如何用文本中的链接替换所有主题标签?我已经尝试过这个解决方案,但不起作用

    pTag.forEach( (tag) => 
        content.replace(tag, 'example.com/'+tag);
    )

【问题讨论】:

【参考方案1】:

您可以根据 Linkify 的文档使用 formatHref 属性将 URL 添加到每个主题标签 https://soapbox.github.io/linkifyjs/docs/options.html

var linkifyOptions = 
    
        formatHref: function (href, type) 
          if (type === 'hashtag') 
            href = 'https://twitter.com/hashtag/' + href.substring(1);
          
          return href;
        
      

var content = 'Linkify is #super #rad2015';
return <Linkify options=linkifyOptions>content</Linkify>;

在这里查看完整代码

https://codesandbox.io/s/linkify-sxt8c?fontsize=14

【讨论】:

嗨,谢谢你,我已经按照你的建议做了,这是我的实际导入和链接选项对象:` import * as linkify from 'linkifyjs';从 'linkifyjs/plugins/hashtag' 导入主题标签;标签(链接); var linkifyOptions = 属性: rel: 'nofollow' , formatHref: function (href, type) if (type === 'hashtag') href = 'twitter.com/hashtag' + href.substring(1); 返回href; ; ` 但仍然无法正常工作,主题标签未链接 我已经修改了我的代码,选项 formatHref 正在按你说的那样工作,我的代码的另一部分有问题。谢谢!接受的答案

以上是关于如何在反应中链接标签的主要内容,如果未能解决你的问题,请参考以下文章

如何在本机反应中删除材料顶部标签栏上方的空白

如何在本机反应中呈现html音频标签?

如何使滑块输入独立于内部的反应变量?

如何在反应中更改material-ui Textfield标签样式

如何在标签中使用表格控件名称-角反应形式

如何在特定条件通过时启用或禁用反应中的p标签。