I have a library of ReactJS components, as the following code:
components.js
class Comp1 extends Component {
    render () {
        return (
            <div>Component 1 Text: {this.props.text}</div>
        );
    }
}
class Comp2 extends Component {
    render () {
        return (
            <div>Component 2 Text: {this.props.text}</div>
        );
    }
}
export components = {
    Comp1,
    Comp2
}
The main component needs to choose which one to render based on a passed property:
main.js
import { components } from './components';
    
class Main extends Component {
    
        getComponent = (name) =>  {
            return components[name];
        };
        
        render () {
        
            let comp = this.getComponent(this.props.componentName);
            
            return (
                <div>
                    <comp   <=== HOW TO CALL THE GIVEN COMPONENT PASSING ITS PROPERTY
                        text={'This is component' + this.props.componentName }
                    />
                </div>
            );
        }
    }
class App extends Component {
        render () {
        
            return (
                <div>
                    <Main componentName='Comp1' /> // Or 'Comp2'
                </div>
            );
        }
    }
}
I need in the main code to render the component and pass its properties, but I can´t make it work (see the comments on code). A simple {comp} renders the component, but I need to be able to pass its properties accordingly.
What I´ve tried:
{comp text={'This is component' + this.props.componentName}}
<comp text={'This is component' + this.props.componentName}/>
None of them worked.