Shadcn Выбор компонента | Как выбрать значение с помощью функцииJavascript

Форум по Javascript
Ответить
Anonymous
 Shadcn Выбор компонента | Как выбрать значение с помощью функции

Сообщение Anonymous »

У меня возникла проблема при использовании компонента Shadcn Select в NextJs.
У меня есть компонент выбора для выбора местоположения

Код: Выделить всё

          




{locations.map((location: any, index: number) => (

{location.title}

))}


Проблема в том, что я обновляю параметры запроса URL-адреса при выборе местоположения. Если я нажимаю кнопку, которая перенаправляет меня на ту же страницу, на которой я уже нахожусь, параметры запроса временно удаляются.
Я пробовал использовать функцию установки внутри useEffect, где я получаю данные, рассматривая их как значение по умолчанию. Это отлично работает всякий раз, когда компонент перемонтируется. Однако когда я нажимаю ту же кнопку для перехода на текущую страницу, запрос удаляется и заменяется, а компонент Select сохраняет свое внутреннее состояние.
Например:Если компонент «Выбор» в настоящее время показывает выбранный второй вариант, и я перехожу на ту же страницу, запрос и полученные данные возвращаются к первому варианту. Однако компонент Select по-прежнему отображает второй вариант.
Это создает несоответствие между отображаемым выбором в компоненте Select и фактическими данными или параметрами запроса.

Код: Выделить всё

 useEffect(() => {
const getLocations = async () => {
try {
const response = (await get({
url: 'api/menu/getLocations',
})) as Location[];
setLocations(response);
if (!selectedLocation && response.length > 0) {
createLocationQuery(response[0].title);
}
} catch (error) {
console.log(error);
}
};
getLocations();
}, [router, selectedLocation]);

Код: Выделить всё

  const createLocationQuery = (value: string) => {
const createQuery = createQueryString('location', value, searchParams);
router.push(pathname + '?' + createQuery);
};
Есть ли способ сбросить компонент выбора, чтобы выбранное состояние было первым вариантом, используя функцию внутри userEffect или, может быть, что-то еще?

Подробнее здесь: https://stackoverflow.com/questions/793 ... a-function
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Javascript»