Javascript 如何将字符串转换为[object]
我有一个Javascript 如何将字符串转换为[object],javascript,reactjs,Javascript,Reactjs,我有一个menuItem组件,它的道具是一个图标组件,由我创建,名为FontIcon 在menuItem道具中,您可以将图标的名称作为字符串传递,例如:leftIcon=“face”,但您也可以像这样传递组件的代码:leftIcon=' 在第一种情况下,所有这些都可以正常工作,props被传递到变量,其中是组件的代码: leftIcon= 但第二种方法不起作用。当用户传递我需要添加的所有代码时(如上所示的大小值),此时添加工作正常: leftIcon=\u props.leftIcon.repl
menuItem
组件,它的道具是一个图标组件,由我创建,名为FontIcon
在menuItem
道具中,您可以将图标的名称作为字符串传递,例如:leftIcon=“face”
,但您也可以像这样传递组件的代码:leftIcon='
在第一种情况下,所有这些都可以正常工作,props被传递到变量,其中是组件的代码:
leftIcon=代码>
但第二种方法不起作用。当用户传递我需要添加的所有代码时(如上所示的大小值),此时添加工作正常:
leftIcon=\u props.leftIcon.replace(/\/>$/,“size={\u props.fontSize}/>)代码>
这里我有if
来检查用户通过了什么:
if (_props.leftIcon.match(/<.+\/>/)) {
leftIcon = _props.leftIcon.replace(/\/>$/, " size={_props.fontSize}/>");
} else {
leftIcon = <FontIcon size={_props.fontSize} className={_props.leftIcon} />;
}
if(_props.leftIcon.match(//)){
leftIcon=\u props.leftIcon.replace(/\/>$/,“size={\u props.fontSize}/>);
}否则{
左图标=;
}
但在第二种情况下,我得到了一个字符串,但它不起作用。没有图标,但有一个带代码的字符串:
所以我安慰你,这就是我得到的:
typeof
第一个是对象,但第二个是字符串
那么,怎样才能使第二种方法起作用呢?如果此代码在渲染部分,则应该起作用
if(_props.leftIcon.match(//)){
leftIcon=\u props.leftIcon.replace(/\/>$/,“size={\u props.fontSize}/>);
}否则{
左图标=();
}
有一种从字符串创建组件的方法,您可以查看
但我建议您将样式和/或类名和其他参数传递给组件,而不是字符串,然后您可以:
return <FontIcon class={condition ? 'firstClass' : 'secondClass'} ... />;
返回;
不幸的是,它不起作用,因为你已经计算出了这个工作部分,第一个如果不起作用,因为它是字符串。我错过了你将它作为道具传递的消息。在这种情况下,您需要将类型作为道具传递,然后在menuItem中执行其余操作。很抱歉,我不明白您的意思:“将类型作为道具传递”。与其将图标作为道具传递,不如在menuItem中传递_props.leftIcon和_props.fontSize并执行if。基本上,这是第一种方法