#javascript #reactjs
#javascript #reactjs
Вопрос:
Я новичок в Javascript, я пытаюсь вызвать код для события onClick внутри компонента контейнера React ниже приведен мой код
const onClickHandler = (e) => {
if (e != null){
const row_id = e.target.getAttribute('key');
var cur_row;
if (api_data != undefined || api_data != null){
for (cur_row=0; api_data.length-1; cur_row ){
console.log('this is api data', api_data[cur_row]['id'])
if (api_data[cur_row]['id'] == row_id){
console.log(api_data[cur_row])
break
}
}}
}}
в приведенном выше коде api_data — это переменная состояния связи, в которой я храню данные. в журнале консоли я могу видеть данные, но когда дело доходит до условия if, которое находится прямо под консолью.оператор журнала Я получаю сообщение об ошибке «Не удается прочитать свойство «идентификатор»неопределенного». Я искал некоторые похожие вопросы, но не смог понять, кто должен решить мою проблему. Есть идеи, чего мне не хватает
Комментарии:
1. является ли цикл for правильным? Я думаю, это должно быть: for(cur_row=0; curr_row < = api_data.length-1; cur_row ){
Ответ №1:
const onClickHandler = (e) => {
if (e != null){
const row_id = e.target.getAttribute('key');
var cur_row;
if (api_data != undefined || api_data != null){
/*
I guess you forgot to add exit statement in for loop,
because of it curr_row value was increasing way beyond
api_data.length giving you undefined output and hence that error
*/
for (cur_row=0; curr_row <= api_data.length-1; cur_row ){
console.log('this is api data', api_data[cur_row]['id'])
if (api_data[cur_row]['id'] == row_id){
console.log(api_data[cur_row])
break
}
}}
}}