У меня есть следующий js маршрут, который находится на пути. Вот URL
localhost:8080/eft-files/133722?enableRegen=true
.
В моей папке /pages
приведен код, который я использую для получения параметров запроса.
const EftFileViewWrapper = () => {
const {
query: { eftFileId, enableRegen }
} = useRouter();
return (
<EftFileView
eftFileId={eftFileId}
enableRegen={enableRegen}
/>
);
};
Когда приложение маршрутизируется через next/link
, изначально enableRegen
равняется true
, но этот файл попадает во второй раз, а enableRegen
затем undefined
. eftFileId
всегда заселен.
Если я сделаю жесткую ссылку sh на странице и не перенаправлю ее через next/link
, я всегда получаю правильные значения для всех параметров запроса.
I Я должен был использовать URLSearchParams
, чтобы сделать эту работу, например:
const EftFileViewWrapper = () => {
const {
query: { eftFileId, enableRegen }
} = useRouter();
let params = isInBrowser && new URLSearchParams(location.search);
return (
<EftFileView
eftFileId={eftFileId}
enableRegen={enableRegen || params.get("enableRegen")}
/>
);
};
Я бы предпочел остаться в следующей js экосистеме, но я не уверен, что делать. Есть идеи?