Почему reactjs не отображает объекты, имя переменной которых начинается с маленькой буквы?

Я только что начал работать с библиотекой facebook для виртуальной привязки DOM «ReactJS» вместе с JSXTransformer. Я следую небольшим простым руководствам по началу работы с http://ryanclark.me/getting-started-with-react/ .

Я написал простой код для отображения div на моей странице в теге body с сообщением «Hello world», но React не отобразил его и не выдал никакой ошибки. мой код следующий.

<script type="text/jsx">
    var customMessage = React.createClass({
        render: function() {
            return <div>Hello World</div>;
        }       
    });
    React.render(<customMessage />,document.body);
</script>

После тяжелой борьбы в течение 1 часа я узнал, что это связано с именем моей переменной «customMessage». когда я изменил его на CustomMessage (начиная с заглавной "C"), все заработало нормально. Просто хочу знать, есть ли какая-то конкретная причина, по которой имена переменных, начинающиеся с маленькой буквы, здесь не разрешены, в то время как мы можем легко использовать их в javascript. Я не нашел (или, может быть, пропустил) в учебниках и онлайн-документации.


person Omar Bahir    schedule 10.09.2015    source источник
comment
facebook.github.io /реагировать/документы/   -  person Tahir Ahmed    schedule 10.09.2015
comment
Спасибо @TahirAhmed за вашу помощь :)   -  person Omar Bahir    schedule 10.09.2015


Ответы (1)


React распознает компоненты по заглавным буквам. Если он не начинается с заглавной буквы, предполагается, что это обычный HTML-тег.

person slomek    schedule 10.09.2015
comment
проверив отладчик, он должен был это заметить. Я помню, что для этой проблемы возникла явная ошибка - person Max Bumaye; 10.09.2015
comment
@MaxBumaye В отладчике вообще нет ошибок (я использую хром). - person Omar Bahir; 10.09.2015
comment
@slomek, вы сказали, что предполагается, что это обычный HTML-тег? Можем ли мы также передать обычный HTML-тег в обратном вызове React.render()? - person Omar Bahir; 10.09.2015
comment
Спасибо за вашу помощь @slomek - person Omar Bahir; 10.09.2015