首页 > 解决方案 > console.log 显示数据但在 if 条件 javascript 中出现错误(使用内部反应组件)

问题描述

我是 Javascript 新手,我试图在 React 容器组件内的 onClick 事件上调用代码 下面是我的代码

  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 是我在其中存储数据的 hookstate 变量。在控制台日志中,我能够看到数据,但是当涉及到位于 console.log 语句正下方的 if 条件时,我收到错误“无法读取未定义的属性 'id'”。我搜索了一些类似的问题,但无法理解谁来解决我的问题。知道我错过了什么

标签: javascriptreactjs

解决方案


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

推荐阅读