0

小组件看起来像这样:

// @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>

4

1 回答 1

1

您需要将道具从“链接”更新为“a”以实现这一目标。

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

请找到沙盒链接

此外,如果您没有进行太多自定义并添加自定义渲染器只是为了在新选项卡中打开链接。您可以使用“linkTarget”道具并将其设置为“_blank”

于 2021-09-09T14:52:59.943 回答