En la aplicación nativa de reacción, estoy usando la navegación de reacción. Estoy enviando un objeto de una pantalla a otra. Después de una sección, estoy ejecutando una función que hace una copia de mi parámetro de ruta y modifica la copia. Pero mi parámetro original también se está modificando. No quiero modificar el objeto original. ¿Cómo evitar la mutación de parámetros?
Aquí está mi estructura de parámetros.
{ id: 1 name: 'some name', productOptions: [ { productOptionId: 1 productOptionName: 'Option name' options: [ { name: 'some option name', value: 12 }, { name: 'some option name', value: 12 }, { name: 'some option name', value: 12 } ] }, { productOptionId: 1 productOptionName: 'Option name' options: [ { name: 'some option name', value: 12 }, { name: 'some option name', value: 12 }, { name: 'some option name', value: 12 } ] } ] }Aquí está mi código de pantalla
const MyScreen({navigation, route}){ const product = route.params.product const productOptions = route.params.productOptions const [newOptionState, setNewOptionState] = useState([]) useEffect(() => { setTimeout(()=>setPreSelected(), 1000) }, []) const setPreSelected = ()=>{ let tempProductOptions = [...productOptions] tempProductOptions.map((item)=>{ if(item.options.length && item.options.length>1){ item.options.splice(1) } }) setNewOptionState(tempProductOptions) } }