I'm trying to create a Copy of my existing Object by doing this. Somehow I'm constantly creating a copy by reference and not as a new object.
    const fieldSchema = [
        {
            addressType: '',
            addressSuffix: '',
            addressStreet: '',
            addressPostalcode: '',
            addressLocation: '',
            addressCountry: 'Germany',
        },
    ];
    //State
    const [inputFields, setInputFields] = useState(fieldSchema);
    const handleMenuItemCopy = (event, index) => {
        const fields = [...inputFields];
        console.log('Existing Item(s):', inputFields);
        const duplicatedField = fields.splice(index, 1);
        console.log('Copied Item:', duplicatedField);
        const newFields = [...inputFields, ...duplicatedField];
        console.log(newFields);
        setInputFields(newFields);
    };
return (
    <>
     {inputFields.map((inputField, index) => (
         ...
         <TextField
            id={`addressPostalcode-${index}`}
            name="addressPostalcode"
            variant="outlined"
            label="Postleitzahl"
            className={classes.input}
            onChange={(event) => handleInputChange(event, index)}
            value={inputField.addressPostalcode}
         ></TextField>
         ...
     }
     <Button
       classes={{
         root: classes.buttonBase,
         startIcon: classes.buttonStartIcon,
       }}
       variant="outlined"
       onClick={(event) => handleMenuItemCopy(event, index)}
    >
      Duplicate Fields
    </Button>
  </>
)
Live Example
- Input some Data inside any Input
- Click Button on Top right
- Select Duplizieren (Duplicate)
- Edit one Field of the Copy
- Changes Immediately take also action in the First Object Field Set.

 
     
    