enocde uri в React Router - PullRequest
       7

enocde uri в React Router

0 голосов
/ 05 мая 2020

Есть ли способ закодировать uri в to prop из <Link> в реактивном маршрутизаторе.

мой код:

<Link to={`info/${props.movie.Title}`}> info </Link>

Я пробовал encodeURI (), но он не работает.

uri = encodeURI(`info/${props.movie.Title}`)
console.log(uri);
<Link to={uri}> info </Link>

При нажатии на ссылку URL-адрес выглядит как «http://localhost: 3000 / info / Man of Steel» вместо «http://localhost» : 3000 / info / Man% 20of% 20Steel". Есть ли способ получить последнее?

Edit

React работает отлично. Виноват. Firefox почему-то не кодирует пробелы в адресной строке. Но кодируются другие специальные символы. Итак, мой вопрос меняется на то, почему пробелы не кодируются Firefox в строке URL. Я также заметил, что копирование и вставка ссылки дает% 20 вместо пробела.

Edit 2

Firefox декодирует пробелы и отображает их в строке URL, в отличие от других браузеров, отображающих% 20. Кодирование фактически выполняется в фоновом режиме.

Ответы [ 2 ]

0 голосов
/ 06 мая 2020

encodeURIComponent () и React отлично работают. Проблема заключалась в том, что в последней версии Firefox пробел не отображается в закодированном виде. Это закодировано. Копирующая вставка дает% 20. Но он будет отображаться как пробел в строке URL Firefox. Другие браузеры по-прежнему выдают% 20.

0 голосов
/ 06 мая 2020

Необязательно использовать случайную строку в URL-адресе. Вместо него вы можете использовать идентификатор mov ie (info /: id), а затем получить mov ie по идентификатору и показать пользователю. В результате вам не нужно декодировать строку, потому что она ненадежна

...