enter code here
我正在创建一个在线目录,每当我单击“更多信息”按钮时,都会得到replace
undefined
我尝试重命名property
,但仍然无法正常工作
let removeCom = this.props.itemInfo.description.replace("?", "").replace('<td width="110" height="">', "").replace("http://extranet.acetools.com/Catalog/","assets/img/items/").replace((/<INPUT[^>]*>/gmi), "").split('<CENTER><FONT COLOR="RED">', 1);
console.log(removeCom);
答案 0 :(得分:0)
description
之类的声音是不确定的。您可能需要检查以确保将prop正确传递到组件。
您也可以尝试将说明设置为默认值,这样就不会出现“无法读取未定义的属性'replace'的错误”错误。
const { itemInfo: { description = '' } = this.props;
let removeCom = description.replace("?", "").replace('<td width="110" height="">', "").replace("http://extranet.acetools.com/Catalog/","assets/img/items/").replace((/<INPUT[^>]*>/gmi), "").split('<CENTER><FONT COLOR="RED">', 1);
答案 1 :(得分:0)
这意味着两件事
itemInfo没有描述,或者您有拼写错误,因为当JavaScript找不到对象时,它返回 undefined ,因此您尝试访问undefined上的replace方法,例如undefined.replace( )
因此您的代码变为
let removeCom = this.props.itemInfo.undefined.replace("?", "").replace('<td width="110" height="">', "").replace("http://extranet.acetools.com/Catalog/","assets/img/items/").replace((/<INPUT[^>]*>/gmi), "").split('<CENTER><FONT COLOR="RED">', 1)
console.log(removeCom);
其他更安全的方法,您可以这样做
let { itemInfo } = this.props;
let removeCom;
if(itemInfo.description){
removeCom = itemInfo.description.replace("?", "").replace('<td width="110" height="">', "").replace("http://extranet.acetools.com/Catalog/","assets/img/items/").replace((/<INPUT[^>]*>/gmi), "").split('<CENTER><FONT COLOR="RED">', 1)
console.log(removeCom);
}