私はmenuItem
コンポーネントを持っていて、その小道具はアイコンというアイコンで作成されました。文字列を[オブジェクトオブジェクト]に変換する方法
menuItem
小道具では、アイコンの名前を文字列として渡すことができます(例:leftIcon="face"
)。leftIcon='<FontIcon style={{color:"red"}} className="face" />'
のようにコンポーネントのコードを渡すこともできます。
leftIcon = <FontIcon size={_props.fontSize} className={_props.leftIcon} />;
しかし、この第二の方法では動作しません。最初のケースで
は、すべてが完璧に動作し、小道具は、コンポーネントのコードがある変数に渡されます。ユーザーは、私がこれまで(上記のように、このサイズの値を)何かを追加する必要があるすべてのコードを渡し、この時点で、これは作品を追加する場合:
leftIcon = _props.leftIcon.replace(/\/>$/, " size={_props.fontSize}/>");
をここで私は、ユーザーが合格したかどうか確認するためにif
を持っています:
if (_props.leftIcon.match(/<.+\/>/)) {
leftIcon = _props.leftIcon.replace(/\/>$/, " size={_props.fontSize}/>");
} else {
leftIcon = <FontIcon size={_props.fontSize} className={_props.leftIcon} />;
}
しかし、この2番目の方法では、私は文字列を取得しているし、動作しません。アイコンはありませんが、コードの文字列があります:
だから私はこれを慰めログきたし、それは私が得たものです:
typeof
この最初はですオブジェクトですが、この2番目は文字列です。
このように2番目の方法で動作させるにはどうすればよいですか?
残念なことに、この作業部分を試したので、この最初の 'if'は文字列では機能しません。 – Karol
私はあなたが小道具としてそれを渡していたことを逃しました。その場合は、型を小道具として渡し、残りをmenuItemで処理する必要があります。 –
申し訳ありませんが、「プロップとしてタイプを渡してください」という意味を理解できません。 – Karol