Подтвердить что ты не робот

Не реагировать на компонент

Я создал новый проект реагирования, и по какой-то причине метод componentDidMount не вызывается.

Я проверил это поведение, поместив вызов console.log в componentDidMount, но я не могу видеть его вывод в консоли.

Кроме того, this.setState() не работает.

Я очень зациклен на том, почему componentDidMount не вызывается. Я попытался использовать оба варианта: "v0.14.0" и "v0.14.3".

Почему 'componentDidMount' не вызывается?

код:

var React = require('react');

var RecipePage = React.createClass({
  componentDidMount: function() {
    console.log('mounted!');
  },
  render: function() {
    return (
      <div>Random Page</div>
    );
  }
});

module.exports = RecipePage;
4b9b3361

Ответ 1

Итак... lo and behold.... Я, наконец, получил его работу (с помощью внешнего эксперта). Причина, по которой методы "componentDidMount" не срабатывали, заключалась в том, что мой сервер был связан и обслуживал все элементы реакции + html на стороне сервера. (Только методы "render" и "getInitialState" вызываются для создания шаблона "html", который доставляется через клиентский браузер... но он останавливается там, потому что он думает, что он завершен)

Исправить: Найти способ доставки результирующего "скомпилированного" html через сервер И, кроме того, разрешить доступ к собственным событиям и "пожаробезопасность" снова на стороне клиента. При компиляции моего файла "view" (index.js или index.html) я включил "Application.start()" script, который снова вставляет мой код bundle.js в шаблон. Затем в моем gulpfile экспортируется переменная "Приложение", чтобы файл "view" мог получить к ней доступ.

Гах... вытащил мои волосы за это. Время для чтения на стороне сервера и рендеринг на стороне клиента

Ответ 2

Это случилось со мной, когда у меня было componentWillMount() определено 2x в одном классе. Это не вызвало ошибки во время выполнения. Я просто удалил второе определение, и все начало работать.

Ответ 3

Вам нужно изменить свой модуль .exports, чтобы указать на RecipePage not TestPage

module.exports = RecipePage;