Hier ist der Objekttyp, den ich tief klonen möchte
Code: Select all
fullValues: { [key : string ] : Array },
Code: Select all
const facetValues: { [key: string ] : Array } = {};
// Type => facetedData?: FacetCollectionType
if (facetedData) {
Object.entries(facetedData).forEach(([key, value]) => {
Object.defineProperty(facetValues, key, { value: [] as string[]});
});
}
const [ facets, setFacets ] = useState(facetValues);
{facetedData &&
Object.keys(facetedData).length !== 0 ?
Object.entries(facetedData).map(([key, options]) => (
))
:
null
}
Code: Select all
{
status: [],
plan: [],
}
Verwenden von lodash deepclone
Code: Select all
console.log(fullValues); // outputs { status: [], plan: [] }
console.log("after deep clone => ");
console.log(_cloneDeep(fullValues)); // outputs {}
Code: Select all
console.log(fullValues); // outputs { status: [], plan: [] }
console.log("after deep clone => ");
console.log(JSON.parse(JSON.stringify(fullValues))); // outputs {}
Code: Select all
let fullValues: { [key : string ] : Array } = { status: [], plan: [] };
console.log(fullValues); // outputs { status: [], plan: [] }
console.log("after deep clone => ");
console.log(_cloneDeep(fullValues)); // outputs { status: [], plan: [] }
Es scheint keine Logik dafür zu geben, warum das passiert? Es macht keinen Sinn!