Por favor refiérase a la imagen
Cuando cambio el contenido del campo de entrada y lo registro usando console.log(e.target.value) entonces se registra el valor actualizado pero cuando uso setContent(e.target.value) está configurando el valor del contenido al valor anterior de entrada
const Search=()=>{ const[content,setContent]=useState([]); const[todos,setTodos]=useState([]); useEffect(() =>{ document.title="Search"; },[]) //searching in database const searchDatabase=(content)=>{ axios.get(`${base_url}/search/${content}`).then( (response)=>{ setTodos(response.data); }, ()=>{ console.log("Database Down") } ) } return ( <div> <Row> <Form className="form-inline mt-2 mb-4"> <FaSearch/> <Input id="searchBox" className="ml-3" type="text" onChange={(e)=>{ console.log("current value: "+e.target.value); setContent(e.target.value); console.log("content value: "+content); searchDatabase(content) }} /> </Form> </Row> </div> ) }Gracias por la ayuda..
agregue la función onChange event y use useEffect para hacer algo al cambiar su content
const Search=()=>{ const [content,setContent]=useState([]); const [todos,setTodos]=useState([]); const onSearchChange = (e) => { let inputUpdated = { ...content, [e.target.name]: e.target.value, }; setContent(Updated); // check with console.log console.log(inputUpdated); }; //searching in database const searchDatabase=(content)=>{ axios.get(`${base_url}/search/${content}`).then( (response)=>{ setTodos(response.data); }, ()=>{ console.log("Database Down") } ) } useEffect(() =>{ document.title="Search"; },[ ]) // On Content Change useEffect(() =>{ searchDatabase(content); //Do as you want },[setContent]) return ( <div> <Row> <Form className="form-inline mt-2 mb-4"> <FaSearch/> <Input id="searchBox" className="ml-3" type="text" onChange={onSearchChange} /> </Form> </Row> </div> ) }