嗨,我正在使用onChange事件更改json数据。数组数据的第一个元素没有被改变&其他json数据正在被更改。我们如何改变第一个数据呢?下面是我的代码-
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]);
};
,
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
}]
默认应答为12
。当我将值从12
更改为1
时,它应该转到answerList[0]
,其余两个应该为空,answered
应该为假,它也工作得很好。但是当我再次将值从1
更改为15
时,它应该会变为answerList[1]
和answerList[0]
&answerList[2]
应该是null和answered
假,但它不能正常工作。answerList[0]
&answerList[1]
是一样的。再次,当我将值从15
更改为151
,然后更改为answerList[0]
&answerList[2]
是相同的,而answerList[1]
得到很好。简而言之,answerList[0]
在任何情况下都不会改变,而answerList[1]
&answerList[2]
正在改变。为什么呢?我们如何解决这个问题?
answerlist[0]["value"] = 1;
先生,试试这个基本上,您希望访问json数组中的第一个元素,然后在该对象中更改value属性。
这里有更多的信息:我如何访问和处理嵌套的对象、数组或JSON?