ОК, так что я серьезно обдумал это.
Правильный ответ
Оказывается material-ui
включает в себя компонент значка, который позволяет вам делать это ... и он сам конвертирует имена, поэтому принимает змеи, паскаля и другие варианты.
import Icon from '@material-ui/core/Icon'
...
render() {
return (
<Icon>{props.iconName}</Icon>
)
}
Предыдущий ответ (рабочий, но массовый перебор)
Создать функцию для:
... Затем используйте компонент Icon-ui.
Вот код:
import Icon from '@material-ui/core/Icon'
function upperFirst(string) {
return string.slice(0, 1).toUpperCase() + string.slice(1, string.length)
}
function fixIconNames(string) {
const name = string.split('_').map(upperFirst).join('')
if (name === '3dRotation') {
return 'ThreeDRotation'
} else if (name === '4k') {
return 'FourK'
} else if (name === '360') {
return 'ThreeSixty'
}
return name
}
...
render() {
const iconName = fixIconNames(props.iconName)
return (
<Icon>{props.iconName}</Icon>
)
}