У меня есть компонент выбора для выбора местоположения
Код: Выделить всё
{locations.map((location: any, index: number) => (
{location.title}
))}
Я пробовал использовать функцию установки внутри 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);
};
Подробнее здесь: https://stackoverflow.com/questions/793 ... a-function
Мобильная версия