As part of my React app, arrow function ContainerCookiesPolicy calls arrow function LogInTitleTest (and some others).
export default class MyClass extends React.Component {
    constructor(props) {
        super(props);
        this.state = {};
    }
    ContainerCookiesPolicy = () => {
        if (window.localStorage.getItem('CookiesAgreed') !== 'true') {
            return (
                <div className='ContainerCookiesPolicy'>
                    <this.LogInTitleTest/>
                    {/*Some other functions*/}
                </div>
            )
        } else {
            return null;
        }
    }
    LogInTitleTest = () => {
        return  (
            <span className='Log_in_title_text'>{'Text'}</span>
        );
    }
render() {
         <this.ContainerCookiesPolicy/>
         {/*Some other functions*/}
    }
}
If I execute this code, this is, function ContainerCookiesPolicy calls function LogInTitleTest, React will not render anything at all (like it does when your function/object returns null) and will give the error Element type is invalid: expected a string (for built-in components) or a class/function (for composite components) but got: undefined.. However, if instead I copy and paste the content of  LogInTitleTest inside ContainerCookiesPolicy like this:
ContainerCookiesPolicy = () => {
        if (window.localStorage.getItem('CookiesAgreed') !== 'true') {
            return (
                <div className='ContainerCookiesPolicy'>
                    <span className='Log_in_title_text'>{'Text'}</span>
                    {/*Some other functions*/}
                </div>
            )
        } else {
            return null;
        }
    }
it will actually render the entire page with the word Text on it.
Further considerations:
- If my function LogInTitleTestcontains<div>instead, it will not render the page either; if the<div>are contained on functionContainerCookiesPolicy, it will render. Same thing if instead of{'Text'}I just haveText.
    LogInTitleTest = () => {
        return  (
            <div className="Log_in_title_container">
                <span className='Log_in_title_text'>{'Text'}</span>
            </div>
        );
    }
- If I change function LogInTitleTestto returnnull, the situation will remain exactly the same:
    LogInTitleTest = () => {
        return  null;
    }
- I'm using AWS Amplify to render the page. On WebStorm on localhost, I did not observe this weird behaviour. 
- I tested the original function - LogInTitleTeston another portion of code and it was working as expected. Hence the issue must be with- ContainerCookiesPolicy.
Any idea why this is happening? Any help would be appreciated!
Thanks in advance
 
    