Неправильный разбор параметра запроса FlowRouter

Когда я попытался разобрать этот URL:

http://localhost:3000/torrent?previous=%2Ftorrent%3Fprevious%3D%252Fuser%26route%3D&route=torrent-item

Я ожидал route = 'torrent-item' (строка), но значение маршрутизатора FlowRouter равно ["", "torrent-item"] (массив)

введите здесь описание изображения

онлайн - https://ts-vcompile.herokuapp.com/user#!/torrent?previous=%2Ftorrent%3Fprevious%3D%252Fuser%26route%3D&route=torrent-item

репозиторий — https://github.com/HedCET/TorrentSearch


person linto cheeran    schedule 15.05.2016    source источник


Ответы (2)


В параметре запроса есть один ключ route, который не имеет значения. Таким образом, предполагаемое значение по умолчанию — пустая строка. Он всегда будет возвращать вам массив ключей с одним и тем же именем (в данном случае «маршрут»).

Таким образом, вы не получите route = 'torrent-item'

предыдущая=%2Ftorrent%3Fprevious%3D%252Fuser%26route%3D&route=torrent-item

person Ankur Soni    schedule 15.05.2016
comment
это означает, что я не могу передать 'route=' как значение другого параметра запроса - person linto cheeran; 15.05.2016
comment
вы можете делать все, что хотите. Но вы должны ожидать route[1] = 'torrent-item'. ИЛИ измените на _route=, чтобы получить желаемый результат как route='torrent-item' - person Ankur Soni; 15.05.2016
comment
это может быть route[0] = 'torrent-item', если я помещаю маршрут перед предыдущим параметром - person linto cheeran; 15.05.2016

Ваш URL расшифровывается как

http://localhost:3000/torrent?previous=/torrent?previous=%2Fuser&route=&route=torrent-item

cf: http://meyerweb.com/eric/tools/dencoder/

так что у вас есть &route=&route=torrent-item, который вернет ["", "torrent-item"], так как маршрут есть дважды.

Вам просто нужно понять, как правильно закодировать этот URL, чтобы правильно его прочитать.

Если это URL-адрес, который вы откуда-то читаете, вам нужно проанализировать несколько аргументов массива, чтобы найти то, что вы хотите.

person MrE    schedule 15.05.2016