尽管使用了 target="_blank",但 React Markdown 链接不会在新选项卡中打开

React Markdown links dont open in a new tab despite using target="_blank"

小组件看起来像这样:

// @flow
import ReactMarkdown from "react-markdown";
import type { Node } from "react";

function LinkRenderer(props: any) {
  return (
    <a href={props.href} target="_blank" rel="noreferrer">
      {props.children}
    </a>
  );
}

type Props = {
  children: Node,
};

const MarkdownRenderer = ({ children }: Props) => {
  return (
    <ReactMarkdown components={{ link: LinkRenderer }}>
      {children}
    </ReactMarkdown>
  );
};

谁能告诉我为什么在使用此组件时我的链接无法在新标签页中打开?

像这样在其他组件中实现组件:

<MarkdownRenderer>{value}</MarkdownRenderer>

您需要将道具从 'link' 更新为 'a' 才能实现。

  <ReactMarkdown components={{ a: LinkRenderer}}>
      {children}
  </ReactMarkdown>

请找到sandboxlink

此外,如果您没有进行过多自定义并添加自定义渲染器只是为了在新选项卡中打开 link。您可以使用 'linkTarget' 属性并将其设置为 '_blank'