Эта строка определяет очень базовый функциональный компонент , который просто отображает его дочерние элементы.
Он определен как статическое свойство в классе Wizard
, так что он доступен черезWizard.Page
.
Код в Wizard.js
на самом деле не основывается на том факте, что дочерние элементы компонента Wizard
являются фактическими Wizard.Page
компонентами - он просто предполагает, что дочерние элементы - это разные шаги вмастер:
render() {
const { children } = this.props
const { page, values } = this.state
const activePage = React.Children.toArray(children)[page]
...
}
Вот почему он все еще работает, когда вы используете <div>
вместо <Wizard.Page>
: элементы div
также действуют как обертки вокруг своих дочерних элементов, а код в render()
метод все равно будет работать как задумано.
Но подход <Wizard.Page>
имеет несколько преимуществ:
- Это делает код в
index.js
более читабельным и явным - При необходимости компонент
Wizard.Page
может превратиться в более сложный компонент с дополнительной логикой, не требуя каких-либо изменений в index.js