Tengo un componente funcional de reacción. Tengo un estado llamado propiedad actual.
const [currentProperty, setCurrentProperty] = useState({})Estoy tratando de asignar un objeto usando setCurrentProperty pero no funciona, la estadística permanece como un objeto negro. Aquí está el código actual:
function handleEditingMortagePaymentOpen(id){ setCurrentlyEditingMortgagePayments(true) setSelectedPropertyById(id) for(let i = 0; i < properties.length; i++){ if(properties[i]['id'] == id){ console.log(properties[i]) setCurrentProperty(properties[i]) console.log(currentProperty) } } }Esto es lo que muestra el archivo console.log
{id: 3, picture: '../images/unnamed.jpeg', price: 464000, status: 'Active', beds: 3, …} address: "Plan 2 Plan, Neo at Mission Foothils" agent: "John Doe" baths: 3 beds: 3 broker: "JD Realty" days_listed: 29 hoa: 12 home_insurance: 239 id: 3 living_space: 3964 mls: "OC3628342" picture: "../images/unnamed.jpeg" price: 464000 property_tax: 68 rent: 2200 sqft: 1939 status: "Active" [[Prototype]]: Object {}Este es el mismo problema mencionado en el método useState set que no refleja el cambio inmediatamente
La función React setState o useState no cambiará instantáneamente su variable, es un proceso asíncrono que solo establecerá su valor en su próximo renderizado,
console.log(properties[i]) setCurrentProperty(properties[i]) console.log(currentProperty) Este código muestra diferentes registros ya que la propiedad actual aún no se ha actualizado con la nueva. Para verificar el cambio de una variable de estado, puede verificarlo fuera de su función (antes de la devolución del componente) o en un useEffect
useEffect(()=> { conole.log(currentProperty) // this will console latest value on your every `currentProperty` update },[currentProperty])o simplemente puede consolarlo antes de devolver el HTML, o dentro de HTML, el valor se actualizará automáticamente en su próximo procesamiento