Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #21 (permalink)  
Старый 14.11.2017, 17:40
Аватар для ruslan_mart
Профессор
Отправить личное сообщение для ruslan_mart Посмотреть профиль Найти все сообщения от ruslan_mart
 
Регистрация: 30.04.2012
Сообщений: 3,018

Сообщение от komplekt_17
import { render } from 'react-dom'
Это не нужно.


Метод render должен возвращать сам компонент.
Ответить с цитированием
  #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>);
  }

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



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Помогите найти ошибку в вёрстке OlegALL (X)HTML/CSS 1 03.02.2014 11:58
Помогите найти ошибку в простом скрипет Mekasan Общие вопросы Javascript 3 05.08.2013 12:02
помогите найти статью Proks Оффтопик 4 30.06.2011 19:24
Помогите найти параметр в скрипте! laised Элементы интерфейса 0 01.02.2011 02:03
Помогите книгу найти по jQuery micscr Оффтопик 4 14.11.2009 00:42