Преобразование ссылок A из HTML в ссылки React Router

268
13 ноября 2017, 22:45

У меня есть проект React TypeScript ASP.NET Core 2.0 MVC на сервере.

Пользователи могут писать сообщение на сайт в виде HTML, сообщения хранятся в базе а потом выводятся в компоненте React на сайте.

В сообщении могут быть HTML ссылки, например <a href="someurl.ru">ссылка</a>, когда ссылка внешняя для сайта, то тут всё хорошо, когда пользователь щелкает по ней переходит на внешний сайт, а мой сайт закрывается. Но когда ссылка внутреняя если на неё кликнуть, то она вызовет перерисовку всего React сайта, а мне нужно что бы она была обработана системой React Routing и перезагрузка всей страницы не происходила. То есть нужно как-то подготовить ссылки из введённого HTML либо на сервере либо на клиенте (или и там и там) в такой вид что бы переход шёл в системе маршрутизации React. Как это можно сделать?

У меня на сервере все сообщения санитаризируются, и парсятся, и я могу любой код вставить в любую ссылку в HTML теле сообщения. Так же так как я вывожу эти сообщения в клиентском скрипте то могу и с той стороны запускать какие-то подготовительные процедуры.

Конечно было бы классно просто преобразовать A к виду <Link to={'...'} /> но если просто в HTML коде сделать такую замену, то он и выведет не A а <Link to={'...'} /> в результирующий HTML, и не будет обработано React-ом.

Вот код вывода текста HTML в сообщении:

<div dangerouslySetInnerHTML={{ __html: x.text }}></div>
READ ALSO
Менять значение циклом в replace(regexp)

Менять значение циклом в replace(regexp)

Надо что бы в строку перезаписывалось 1 и 2, а записывается только 1(так как цикл сразу возвращает первое значение i)Как исправить ?

313
Ошибки с реактивными формами

Ошибки с реактивными формами

Делаю форму и в одной из секций такой код:

238