Здраствуйте. Изучаю JS и React, и хочу понять одну строчку кода которую не очень понимаю.
Есть код реализующий вкладки:
const items = [
{content: 'London'},
{content: 'Paris' }
];
class Content extends React.Component {
render() {
return (
<div className="content">
<p>{this.props.content}</p>
</div>
);
}
}
class Tabs extends React.Component {
state = {
active: 0,
}
open = (e) => {
this.setState({
active: +e.target.dataset.index,
});
}
render() {
return (
<div>
<div className="tab">
{this.props.items.map((n, i) => (
<button onClick={this.open} data-index={i}>{n.content}</button>
))}
</div>
{this.props.items[this.state.active] && <Content {...this.props.items[this.state.active]} />}
</div>
);
}
}
ReactDOM.render(<Tabs items={items} />, document.getElementById('root'));
И у меня вопросы об этой строке:
{this.props.items[this.state.active] && <Content {...this.props.items[this.state.active]} />}
1) Почему до оператора
&&
пишем не просто
this.state.active
а
this.props.items[this.state.active]
? Для чего это нужно?
2) Почему после оператора
&&
не написано просто
<Content atr={this.props.items} />
. Зачем повторяется то что слева написано от оператора
&&
? Тоесть почему именно так написан здесь код?