解决TypeError: Cannot read property 'push' of undefined错误
解决「TypeError: Cannot read property 'push' of undefined」错误
问题根源
当this.props.parentLeads为undefined时,this.props.parentLeads?.filter(...)会返回undefined而非空数组,此时进入else分支调用push方法就会触发该错误。
正确实现方式
给parent_lead_contact设置空数组兜底,确保它始终是数组类型,再执行后续逻辑:
// 用空数组兜底,保证parent_lead_contact始终为数组 const parent_lead_contact = this.props.parentLeads?.filter((lead) => lead.contact_guid.includes(this.props.parent_lead_party_guid) ) || []; if (parent_lead_contact.length > 0) { parent_lead_contact[0].is_parent_lead_contact = true; } else { parent_lead_contact.push({ is_parent_lead_contact: true }); }
说明
- 通过
|| []兜底,即使this.props.parentLeads不存在或过滤结果为空,parent_lead_contact都会是数组类型 - 完全保留核心需求:数组非空时给第一个元素添加
is_parent_lead_contact属性;数组为空时添加新对象到数组中
内容的提问来源于stack exchange,提问作者JarochoEngineer
相关产品推荐
相关产品推荐

