Мы столкнулись с некоторыми проблемами при использовании реакции сейчас, но это kinda кипит к одной части того, как мы использовали реакцию.Показать/скрыть компоненты в ReactJS
Как мы должны показывать/скрывать дочерние компоненты?
Это, как мы закодировали его (это есть только фрагменты наших компонентов) ...
_click: function() {
if ($('#add-here').is(':empty'))
React.render(<Child />, $('#add-here')[0]);
else
React.unmountComponentAtNode($('#add-here')[0]);
},
render: function() {
return(
<div>
<div onClick={this._click}>Parent - click me to add child</div>
<div id="add-here"></div>
</div>
)
}
и в последнее время я читал примеры, как это должен был быть где-то вдоль этой линии:
getInitialState: function() {
return { showChild: false };
},
_click: function() {
this.setState({showChild: !this.state.showChild});
},
render: function() {
return(
<div>
<div onClick={this._click}>Parent - click me to add child</div>
{this.state.showChild ? <Child /> : null}
</div>
)
}
Должен ли я использовать этот React.render()? Кажется, что останавливает различные вещи, такие как shouldComponentUpdate
, каскадом для ребенка и такими вещами, как e.stopPropagation
...
Можете ли вы объяснить более подробно, что проблема с 2-го решения есть? Это действительно предпочтительный способ сделать. Имейте атрибут состояния 'showChild', который вы переключаете, когда вы нажимаете' div'. При вызове 'setState' выполняется повторная передача вашего компонента. –
@LarsBlumberg. Ой. У меня на самом деле еще не было опыта со вторым решением. Я только пробовал это в маленьком приложении и, похоже, работает. Мы использовали первый, так как это было то, чему нас учили раньше. Но теперь мы столкнулись с такими проблемами, как «stopPropagation», которые не работают, или нам необходимо вручную обновить Child, когда 'parentComponentUpdate' запускает родительский элемент. Но я действительно не видел никаких документов относительно этого «предпочтительного способа», только примеры различных учебников. Итак, мы должны использовать второе решение? – index
Да, второй - лучший выбор. Документы и примеры React не используют JQuery. Документы имеют много отличной информации. https://facebook.github.io/react/docs/interactivity-and-dynamic-uis.html – WiredPrairie