javascript - 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'”。我搜索了一些类似的问题,但无法理解谁来解决我的问题。知道我错过了什么
解决方案
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
}
}}
}}
推荐阅读
- angularjs - 在 angularjs 中从网页上的本地 JSON 文件访问图像
- javascript - 为什么在 canActivate() 之前调用 ngOnInit()?
- powershell - powershell 作业未并行执行
- python - 无法安装 PySpatiaLite 模块(“SyntaxError: Missing parentheses in call to 'print'”)
- javascript - 验证范围输入不重叠
- regex - 在Scala中用两个分隔符(和“”)分割字符串
- apache - Apache中隐藏的SSL证书重叠?(虚拟分钟)
- laravel - Contentful/Laravel Delivery API setInclude 无法按预期工作
- javascript - 如何防止在表格中打印两个相同的元素?
- linux - Jenkins HTMLPublisher 插件未显示在仪表板上