** Tengo un formulario de facturación y en este tengo algunos detalles del producto que el administrador puede completar estos detalles, pero 1 campo llamado "BillID" quiero pasarle directamente una variable que contenga el valor 'Bill ID + 1' como valor predeterminado .
**Este es mi código:-
const [BillIdFetch, setBillIdFetch] = useState(); useEffect(() => { axios.get("http://localhost:5000/getLastBill_Id").then(( res ) => { setBillIdFetch(res.data[0].Bill_Id + 1); }); }, []); console.log("===>>>> Testing BillIdFetch ",BillIdFetch) //**I check in this variable value stored perfectly. const [Product_Details, setProduct_Details] = useState([ { index: Math.random(), billId : BillIdFetch, //**I want 'BllIdFetch' value pass to this state variable. prodId: "", qty: "", price: "", prod_SrNo: "", discount_price: "", proData_warranty: "", }, ]);En 'BillIdFetch' obtuve el valor de id + 1 correcto y también uso este valor para mostrar el número de factura. en la columna de formulario. pero cuando configuro este valor en 'billId', se muestra así: - {billId: indefinido}
Esta es una solicitud posterior al servidor.
En esto, se le pasa una matriz de objetos 'Produt_Details'.
const config = { header: { "Content type": "appication/json", }, }; const { data } = await axios.post( "http://localhost:5000/billing_data", { p_value: Product_Details }, config );Lo que debe hacer es verificar cuándo cambia BillIdFetch y luego establecer el valor de estado correcto para Product_Details . En su código actual, ¿el código para establecer el valor de Product_Details? se ejecutará antes de la obtención.
Para resolver esto, use un useEffect con BillIdFetch como una dependencia, por lo tanto, este código se ejecutará cuando cambie BillIdFetch .
Podría verse algo como esto:
const [Product_Details, setProduct_Details] = useState([]); const [BillIdFetch, setBillIdFetch] = useState(); useEffect(() => { axios.get("http://localhost:5000/getLastBill_Id").then(( res ) => { setBillIdFetch(res.data[0].Bill_Id + 1); }); }, []); useEffect(() => { if (billIdFetch === undefined) return; setProduct_Details([{ index: Math.random(), billId : BillIdFetch, prodId: "", qty: "", price: "", prod_SrNo: "", discount_price: "", proData_warranty: "", }]) }, [billIdFetch])