Creé un formulario en reaccionar usando Formiz . Pero no está enviando el valor correcto.
Aquí hay un CodeSandbox en funcionamiento: https://codesandbox.io/s/formiz-pricing-wizard-forked-fcnsn?file=/src/fields/fieldradio.js
Actualmente me está enviando este valor:
Pero debería enviarme este valor:
Ya intenté cambiar step1.js de esto:
const transformOptions = (options) => options.map(({ subCategory, price, radioImage }, i) => ({ label: <span>{subCategory}</span>, id: `${subCategory}-${i}`, value: `${price}`, image: radioImage }));A esto:
const transformOptions = (options) => options.map(({ subCategory, price, radioImage }, i) => ({ label: <span>{subCategory}</span>, id: `${subCategory}-${i}`, value: `${subCategory} - ${price}`, image: radioImage })); Me envía los valores correctos pero la función totalPrice en MyForm.js deja de funcionar:
const totalPrice = React.useMemo(() => { return categories.reduce( (total, c) => total + (myForm.values[c] ? parseInt(myForm.values[c], 10) : 0), 0 ); }, [myForm.values]);¿Alguien por favor me ayudará a arreglarlo? ¡Porque he estado tratando de encontrar una solución durante horas, pero todavía no pude encontrar una y no puedo entender qué es lo que está mal!
Dado que modificó el value de ${price} a ${subCategory} - ${price} ahora su precio total está roto porque en totalPrice myForm.values[c] ya no existe solo el precio, sino también la subcategoría.
Para solucionar esto solo es necesario arreglar su totalPrice de esta manera:
const totalPrice = React.useMemo(() => { return categories.reduce( (total, c) => total + (myForm.values[c]?.split("-")[1] ? parseInt(myForm.values[c]?.split("-")[1], 10) : 0), 0 ); }, [myForm.values]); myForm.values[c] con myForm.values[c]?.split("-")[1] para "limpiar" el value de la parte de subCategory y dejar solo price .
Aquí su codesandbox modificado.