Soy nuevo en React y no entiendo esto:
yo escribo
const [imageURL,setImageURL] = useState('');y
var temp = "https://" + response.value.cid + ".ipfs.dweb.link/" + response.value.files[0].name; setImageURL(temp) console.log("Set ImageURL to: ", temp); console.log("imageURL shows: ", imageURL); Pero obviamente me estoy perdiendo el punto, porque obtengo una variable imageURL vacía:
Agradecería si alguien pudiera explicarme esto :) ¡Gracias!
No puede obtener el último estado de inmediato en reaccionar. cuando está configurando su estado, es una operación asíncrona y no le dará el valor de inmediato en la siguiente línea. Para ejecutar algo basado en el último cambio en su estado, debe usar useEffect de esta manera:
const [imageURL,setImageURL] = useState(''); let temp = "https://" + response.value.cid + ".ipfs.dweb.link/" + response.value.files[0].name; console.log("Set ImageURL to: ", temp); setImageURL(temp); //The latest change would show up inside useEffect here useEffect(() => { console.log("imageURL shows: ", imageURL); }, [imageURL])el código dentro de useEffect se ejecutaría cada vez que su estado se actualice ya que pasa su estado como una dependencia allí. Ve a buscar useEffect. hay numerosos recursos por ahí sobre eso.
Esa cadena vacía que está pasando a la función useState() es el valor asignado primero a imageURL. Debe llamar a setImageURL() para configurarlo como desee, o pasar un valor inicial específico.