Вы должны использовать компонент LInk, а не a, если вы хотите, чтобы браузер-маршрутизатор управлял вашей навигацией, как показано здесь.
https://reacttraining.com/react-router/web/api/Link/to-string
Если для атрибута метода установлено значение GET, браузер удаляет параметры строки запроса из атрибута действия перед созданием аргумента формы значения.
Итак, в вашем примере запрос к серверу на отправку будет выглядеть следующим образом: /somePage.html?param2=value¶m3=value
Так что нет, когда метод «GET», как в В вашем примере нет причин делать это.
Вы можете изменить атрибут метода в форме на «POST» со скриптом перед отправкой формы, чтобы можно было использовать строку запроса в действии. Хотя вряд ли это лучшее решение для чего-либо.
Не уверен, но я думаю, что лучше размещать эти переменные в скрытых полях ввода. Таким образом, не имеет значения, если вы используете метод POST или GET.
<form method="get" action="/somePage.html">
<input name="param2"></input>
<input name="param3"></input>
<input type="hidden" name="param1" value="foo" />
<input type="hidden" name="param2" value="foo" />
</form>
Well, all the questions have been answered except the last, to which the answer is yes. For POST
, it's allowed, but you may well find cases where it doesn't work. I've seen web servers that only allow postdata or querystring, so it's not dependable.