Я пытаюсь проверить, существует ли состояние в useLocation. Есть идеи, как это сделать лучше?
Этому компоненту передается состояние, которое содержит состояние пользователя и адрес, через компонент Link-to response-router. Затем он переходит в состояние под названием Payload для обработки.
import React, { useState, useEffect } from "react";
import { useParams, useNavigate, useLocation } from "react-router";
const Comp = () => {
const { userId } = useParams();
const location = useLocation();
const navigate = useNavigate();
const [payload, setPayload] = useState({
country: "",
city: "",
address: "",
notes: "",
address_phone_number: "",
user: "",
});
useEffect(() => {
let checkUser;
try {
checkUser = location.state.user;
} catch {
checkUser = null;
}
if (checkUser === null) {
navigate(`/admin/dashboard/users/${userId}/details/`, {
replace: true,
});
}
}, [navigate, location, userId]);
useEffect(() => {
let checkAddress;
try {
checkAddress = location.state.address;
console.log("payload", checkAddress);
if (checkAddress) {
setPayload({ ...checkAddress });
}
} catch {
checkAddress = null;
}
}, [navigate, location]);
useEffect(() => console.log("state", payload), [payload]);
return <div>SOME STUFF HERE</div>
};
export default Comp;