React Next Js 将 Link 作为组件添加到字符串中

React NextJs Add Link as componenet into a string

我需要以编程方式构建 nextJs links。 一个简单的例子:

const link = <Link href={'/example'}>ipsum</Link>

const text = 'Lorem ipsum dolor sit amet'

const replaced = text.replaceAll('ipsum', link);

但结果是:

Lorem [object Object] dolor sit amet

如何在不破坏 React 组件的情况下用 link 组件替换字符串? 谢谢

连接字符串中的组件将导致显示 [object Object],因为最终该组件是一个对象,并将被强制转换为字符串以适合。

为了实现您的目标,可以使用数组代替。

  const link = <Link href={'/example'}>ipsum</Link>
  const text = 'Lorem ipsum dolor sit amet'
  const res = text.split(" ").reduce((acc, curr) => {
    if (curr === "ipsum") {
      return [...acc, link];
    }
    return [...acc, ` ${curr} `];
  }, []);

  return <>{res}</>

该片段将按照您的预期显示对象数组。