Actualmente estoy creando una aplicación con React donde tengo un objeto llamado Power. Power contiene EffectOptions. Tengo una lista fija de EffectOptions para elegir, donde contienen ID, nombre, etc. y un InstanceID, ya que puedo agregar la misma opción varias veces.
Sin embargo, lo que sucede es que, cada vez que agrego un nuevo EffectOption con un nuevo ID de instancia, vuelve a trabajar todo el ID de instancia de todos los objetos ya agregados en un nuevo orden.
Aquí está mi código:
const AddOption = (optionID: number) => { let tempOptions: EffectOption[] = localPower.powerOptions; let option: EffectOption = optionsList.find(elem => elem.id === optionID); let _newOption: EffectOption = new EffectOption( option.id, option.name, option.exclusive, option.ranked, option.rank, option.maxRank, option.extraField, option.description, option.benefits ); _newOption.instanceID = _IDGenerator.optionsID++; tempOptions.push( _newOption ); tempOptions.sort(function (a, b) { return ('' + a.name).localeCompare(b.name); }); let tempPower = localPower; tempPower.powerOptions = [...tempOptions]; let sum: number = 0; for(let options of tempOptions){ sum += options.rank; } setPowerRank( sum ); setLocalPower( tempPower ); console.log(tempOptions); }Agregando cuatro opciones que tengo:
Aunque si cambio algo más, como la identificación o el nombre, etc., se almacena correctamente.
Gracias por tu atención.