Estoy tratando de copiar el objeto que tengo en un componente hasta una propiedad. Puedo hacer que funcione así:
onSubmit: values => { data.label = values.label; data.userName = values.userName; data.recipientUserName = values.recipientUserName data.vanityURL = values.vanityURL; data.dollarAmount = values.dollarAmount; data.textData = values.textData;Soy nuevo en javascript pero esto se siente muy feo. ¿Hay alguna manera de que pueda hacer una copia superficial directa sin iterar en todos los campos?
El objeto de datos que se crea se pasa en la parte superior como:
export default memo(({ id, data, isConnectable,setElements, removeElements}) => { const [show, setShow] = useState(false); const handleClose = (e) => {setShow(false)}; const handleShow = () => setShow(true); const formik = useFormik({ initialValues: { label: data.label, userName: '', recipientUserName: '', vanityURL: '', dollarAmount: '', textData: '' }, onSubmit: values => { data.label = values.label; data.userName = values.userName; data.recipientUserName = values.recipientUserName data.vanityURL = values.vanityURL; data.dollarAmount = values.dollarAmount; data.textData = values.textData; }, onReset: (values, { resetForm }) => resetForm(), }); return ( .... onSubmit es parte de un formulario Formik.
Para realizar una copia superficial, puede seguir uno de estos métodos.
Ejemplo 1
data = {...values}Ejemplo 2
data = Object.assign({}, values)Ejemplo 3
data = JSON.parse(JSON.stringify(values));Tu puedes hacer
const data = {...value}