Этот поставил меня в тупик, потому что я не вижу, куда в него входит асинхронная часть. Я получаю ошибку Unhandled promise rejection: ReferenceError: Can't find variable: copyOfWatchList]
, но кроме кода, находящегося внутри асинхронной функции, этот конкретный фрагмент кода не является асинхронным, я бы подумал.
Все, что он делает, это делает копию состояния массива obj this.state.symbols
и затем добавляет новую пару ключ / значение в конкретную точку в obj, что работает. Различные строки console.log
отображают правильные данные.
Затем я пытаюсь скопировать новый объект обратно в массив в определенной точке i
, где написано copyOfWatchList[i] = theNewWatchListData
, но эта строка выдает вышеуказанную ошибку.
Почему? Как это исправить?
onPressAlertListItem = async (item) => {
.....
A WHOLE BUNCH OF ASYNC CODE THAT IS SEPERATE FROM BELOW AND WORKS ON ITS OWN
........
var copyofWatchList = [...this.state.symbols];
[...OTHER CODE WHICH DETERMINES THE VALUE OF newStuff...]
for (var i = 0; i < copyofWatchList.length; i++) {
theNewWatchListData = {
...copyofWatchList[i],
newKey: newStuff
};
//console.log(theNewWatchListData) //this line works and has the added newKey:newStuff key value pair added to the object
//save the array obj back into the watch list
copyOfWatchList[i] = theNewWatchListData; //this line throws an error Unhandled promise rejection: ReferenceError: Can't find variable: copyOfWatchList]
//console.log(copyofWatchList[i]) //this line works if the above line is commented out
}
}