консоль.журнал, показывающий данные, но получающий ошибку в if condition javascript (с использованием внутреннего компонента react)

#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
        }
      }}
  }}