Показать сообщение отдельно
  #22 (permalink)  
Старый 14.11.2017, 21:11
Новичок на форуме
Отправить личное сообщение для stanilar Посмотреть профиль Найти все сообщения от stanilar
 
Регистрация: 13.10.2015
Сообщений: 2

Таки класс объявлен некорректно. Корректно - в классе должны быть только методы(то, как Вам посоветовал оформить код Nexus).
Так что показывайте ошибку, а то получается испорченный телефон.

Да, кстати, render не подразумевает то, что Вы вернете результат функции через промис( и уж тем более того, что результата вообще не будет). Результат надо возвращать сразу, причем именно в виде реактовского дерева.

Для реакции на изменившееся окружение нужны другие методы. Нужно работать через state реактовских компонент.Как то так(пишу по памяти):
class App extends Component{
  constructor(props) {
    //Конструктор класса, выполняется при создании объекта.
    super(props);
    this.state = {
      color: 1,
    };
   this.authrequest = this.authrequest.bind(this);
  }

  authrequest () {
  //Здесь запрос к серверу с ответом, по которому, будет изменен цвет компонента. Нужно использовать именно setState - иначе реакт не поймет что окружение изменилось
  ...
  ля - ля - ля а затем
  this.setState({color: 2,});
  }

  componentDidMount(){
  // Метод жизненного цикла компонента, будет вызван после того, как объект создан и задеплоен в виртуальное дерево. Стоит обратить внимание, что метод render будет вызван до вызова этого метода.
  this.authrequest();
  }


  render(){
  // Вызывается каждый раз, когда изменяется внутренне состояние компонента.
  const {color} = this.state;
  let cmp = null; // тот компонент, который отрисуется в зависимости от переменной color
  if (color===1){
    cmp = (<div>1<div>);
  } else {
    cmp = (<div>2<div>);
  }

  return (<div>
                {cmp }
             <div>);
  }

}
Ответить с цитированием