Я совершенно уверен, что это не самый эффективный способ сделать это, и при этом это не действительно многократное использование.Но вот, по крайней мере, отправная точка.
Вы храните эту текстовую информацию в состоянии, я полагаю.При рендеринге из состояния FROM используйте
const firstText = this.state.userText.split('[products]');
, чтобы получить все до тега, затем
const lastText = firstText[1].split('[/products]');
, чтобы получить все после ссылки.Ваш рендер будет выглядеть примерно так:
<p>
{firstText[0]}
<Link to="/products">{lastText[0]}</Link>
{lastText[1]}
</p>
Для реального случая использования вы захотите сохранить его в состоянии, отследить, что и где находятся все ваши теги, и выбросить все в массивв отдельной записи состояния, так что вы можете отобразить выход соответствующим образом.Это, несомненно, будет метод вместо серии объявлений переменных.И я уверен, что это не очень эффективно.Но это не невозможно!
Удачи.