Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/401.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何将字符串转换为[object]_Javascript_Reactjs - Fatal编程技术网

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。基本上,这是第一种方法