Hola, estoy cambiando datos json usando el evento onChange. El primer elemento de los datos de la matriz no se cambia y otros datos json se cambian. ¿Cómo podemos cambiar los primeros datos también? a continuación está mi código -
const onChange = ( selectType: string, selectedValue: string, selectedId: number ): void => { const arrayData = arrayData1 // where arrayData1 is state // get question data to to make the changes const myQues = arrayData.find( (ques) => ques.quesId=== selectedId ); if (myQues) { switch (selectType) { case Enum.DEMO_VALUE: myQues.answerList.map((answer) => { if(typeof selectedValue === 'string' && parseInt(selectedValue) <= answer.high && parseInt(selectedValue) >= answer.low) { answer.value1 = selectedValue; answer.value2 = selectedValue; answer.answered = true } else { answer.value1 = null; answer.value2 = null; answer.answered = false } }); break; } } setMyArrayData([...arrayData]); };dónde
answerList = [{ value1 : null, value2 : null, answered : false, low : 0, high : 9 }, { value1 : 12, value2 : 12, answered : true, low : 10, high : 19 } { value1 : null, value2 : null, answered : false, low : 20, high : 300 }] La respuesta predeterminada es 12 . Cuando cambio el valor de 12 a 1 , debería ir a answerList[0] y el resto dos debería ser nulo y la answered debería ser falsa y también funciona bien. Pero cuando cambio el valor de 1 a 15 nuevamente, debería ir a answerList[1] y answerList[0] & answerList[2] debería ser nulo y answered falso pero no funciona correctamente. Tanto answerList[0] como answerList[1] son iguales. Nuevamente, cuando cambio el valor de 15 a 151 , entonces la lista de answerList[0] y la lista de answerList[2] son iguales, mientras que la answerList[1] funciona bien. En resumen, la lista de answerList[0] no se cambia en ninguna condición, mientras que answerList[1] y la lista de answerList[2] se cambian. Porqué es eso ? ¿Cómo podemos resolverlo?
answerlist[0]["value"] = 1;intente esto, señor, básicamente, desea acceder al primer elemento en su matriz json, luego en ese objeto desea cambiar la propiedad del valor.
más sobre esto aquí: ¿Cómo puedo acceder y procesar objetos anidados, matrices o JSON?