В классе реагирующих компонентов откуда именно берется объект "реквизит"? - PullRequest
2 голосов
/ 23 июня 2019

Чтобы перейти непосредственно к сути, в компоненте класса «реакция», откуда берется объект prop?

Я следую официальному учебному пособию по игре в крестики-нолики.

Во-первых, когда я смотрю на код для класса реагирования Component (который мы расширяем при создании компонента React), я замечаю, что функция имеет 3 параметра Component(props, context, updater), но я удивлен, почему в случаяхгде super () вызывается только props передается как super(props).Разве не должны быть переданы значения для context и updater?Почему при запуске кода без вызова super нет ошибок?

import React, { Component } from "react";

export class Square extends Component
{
    render()
    {
        return (
            <span>
                <button className="square" onClick={ () => { alert("click") } }>
                    {this.props.value}
                </button>
            </span>
        )
    }
}

Чтобы было ясно, я понимаю, что свойство value в {this.props.value} происходит от переданного свойстваSquare <Square value={index}/>;, который является дочерним элементом в другом компоненте (Board в случае учебника по React), но это не то, на что я ссылаюсь.

Ответы [ 2 ]

0 голосов
/ 23 июня 2019

Необходимо одно: конструктор родителя (класс Component) должен вызываться в любом компоненте класса React .

Что делает super (внутри Square)s constructor) должен вызывать конструктор Component с Square 's props. (Надеюсь, это не сложно)

  1. Если Square имеет constructor, то вам следует неявно позвонить super.

  2. Если Square не имеет конструктора, тогда конструктор Component будет автоматически вызываться при использовании <Square />.

Также вы не используетеcontext или updater непосредственно в ваших компонентах.Поэтому нет необходимости определять их там.

0 голосов
/ 23 июня 2019

Реквизиты - это свойства, которые передаются из класса Super в класс, который вы создаете с помощью extends Components в React.

Подобно тому, что происходит в OOPS, когда свойства родительского класса передаются дочерним элементам вконструкторАналогичным образом пропускаются реквизиты в React. Это применимо и к функциональным компонентам *

Примечание. Пожалуйста, не путайте его с концепциями OOPS [просто для упрощенной версии]

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...