Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 03.01.2016, 18:02
Pit Pit вне форума
Интересующийся
Отправить личное сообщение для Pit Посмотреть профиль Найти все сообщения от Pit
 
Регистрация: 21.05.2015
Сообщений: 14

TypeScript + React, почему два объекта?
Делаю примитивный компонент:
export class TodoItem extends React.Component<any, any> {
...

Создаю его в понятиях React:
var my = React.createElement(TodoItem)

А потом два раза рендерю на разные DIV'ы:
ReactDOM.render(my, document.getElementById('main'));
ReactDOM.render(my, document.getElementById('main2'));

Я бы ожидал, что экземпляр my будет два раза отрендерен, но ощущение, что работают два разных экземпляра класса TodoItem.

То есть, я делаю callback на onClick, например (с bind'ом конечно). И в этом колбэке меняю свойство класса, так вот эти два отрендеренных компонента как будто работают независимо друг от друга. Как будто получилось два экземпляра TodoItem. Но где их создалось два? Я же создаю my один раз...
Ответить с цитированием
  #2 (permalink)  
Старый 03.01.2016, 18:06
Pit Pit вне форума
Интересующийся
Отправить личное сообщение для Pit Посмотреть профиль Найти все сообщения от Pit
 
Регистрация: 21.05.2015
Сообщений: 14

ну и заодно вопрос, если можно...
Если вот делать так:
ReactDOM.render(my, document.getElementById('main'));
ReactDOM.render(my, document.getElementById('main'));

впрочем как и:
var my = React.createElement(TodoItem)
var my2 = React.createElement(TodoItem)
ReactDOM.render(my, document.getElementById('main'))
ReactDOM.render(my2, document.getElementById('main'))


То появляется визуально только один компонент. Почему так?
Ответить с цитированием
  #3 (permalink)  
Старый 03.01.2016, 18:13
Аватар для Safort
Профессор
Отправить личное сообщение для Safort Посмотреть профиль Найти все сообщения от Safort
 
Регистрация: 23.12.2013
Сообщений: 1,856

Pit,
Цитата:
ReactDOM.render(my, document.getElementById('main'));
ReactDOM.render(my, document.getElementById('main'));
А как должно быть? Ты же один и тот же компонент в один и тот же элемент помещаешь.
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Связываем два объекта Andrey Kovalchuk Events/DOM/Window 5 17.03.2015 18:07
Как получить два разных значения одного объекта EvgeniyRRU Общие вопросы Javascript 5 21.09.2012 15:24
Загрузить поочерди два разных объекта в Fancybox prog90 Общие вопросы Javascript 0 14.01.2012 17:19
почему не работает два автокомплита вместе mcavalon AJAX и COMET 3 23.12.2011 11:56
Можно ли получить имя экземпляра объекта внутри самого объекта? Ichigeki Общие вопросы Javascript 9 14.11.2008 19:00