Next.js параметры маршрутизатора продолжают выдавать мне предупреждения о неизвестных ключах

#javascript #reactjs #next.js #url-parameters #next-router

Вопрос:

Я создаю страницу поиска, поэтому я использую параметры URL для обработки фильтров, таких как категория продукта и цена.

Это мой текущий метод, который обрабатывает добавление и удаление параметров URL:

  function handleCheck(checked: Boolean, id: string, option) {
    if (checked) {
      if (router.query[id]) {
        router.query[id]  = `,${option.value}`;
      } else {
        router.query[id] = `${option.value}`;
      }
    }
    if (!checked) {
      if (router.query[id]) {
        let param = router.query[id].toString();
        let array = param.split(",");
        array = array.filter((param) => param !== option.value);
        router.query[id] = array;
      }
    }
    router.push(router);
  }
 

Я получаю эти предупреждения каждый раз, когда изменяется URL-адрес:

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

Комментарии:

1. Это актуально: github.com/vercel/next.js/issues/7962

2. Почему вы передаете сам экземпляр маршрутизатора router.push вызову? Его первым аргументом должен быть либо объект string, либо URL.

3. Я полагаю, что видел еще один пример здесь, в stack overflow, в котором предлагалось нажать весь объект. Должен ли я попробовать только с маршрутизатором. запрос? @juliomalves

4. Да, в виде строки. Я бы также рекомендовал вам не изменять router.query и генерировать новую строку запроса для передачи router.push .