Quiero hacer un validador que valide la singularidad de los elementos. Si quiero crear cosas nuevas, primero quiero verificar si ya las tengo en la base de datos.
Código:
const [categList, setCategList] = useState([]); const getItems = () => { // Sending HTTP GET request Axios.get(url).then((response) => { const categories = []; response.data.forEach((resCateg) => { categories.push(resCateg.name + ", " + resCateg.description); console.log(resCateg); }); setCategList(categories); }); };Y antes de hacerlo:
function submit(e) { e.preventDefault(); //reset form validation errors resetFormValidationErrors(); Axios.post(url, { // Sending HTTP POST request name: data.name, description: data.description, }).then((res) => { resetForm(); }); }Quiero verificar en "preventDefault" que mi nombre es único. ¿Alguna ayuda?
Solo necesita almacenar nombres en su estado y luego puede verificar desde esa matriz si su nombre ya existe o no.
Aquí está cómo hacerlo-
const [categList, setCategList] = useState([]); const getItems = () => { // Sending HTTP GET request Axios.get(url).then((response) => { const categoryNames = response.data.map(res => res.name) setCategList(categoryNames); }); };Comprobar al enviar -
function submit(e) { e.preventDefault(); //reset form validation errors resetFormValidationErrors(); // Checking here if `categList` already includes name if(categList.includes(data.name.trim())) { alert(`${data.name} is already taken, Please select any other name.`) return } Axios.post(url, { // Sending HTTP POST request name: data.name, description: data.description, }).then((res) => { resetForm(); }); }