Я переносил одно из своих приложений на ES6 на узле / реагировании, и у меня есть вопрос о том, как реквизиты передаются детям. Я прочитал кучу сообщений, и некоторые обращаются к этому, а другие нет. По сути, я видел вот что:

export default class SomeComponent extends React.Component {
    constructor(props) {
        super(props);
    }
    render() {
        return (
            <div>
               {this.props.text} <<< Props used here
            </div>
        );
    }
}

Но мне удалось заставить свой компонент работать со следующим:

export default class SomeComponent extends React.Component {
    constructor() {
        super(); <<< notice no props in parentheses 
    }
    render() {
        return (
            <div>
               {this.props.text} <<< Props used here
            </div>
        );
    }
}

Есть ли причина, по которой я должен передавать реквизиты в круглых скобках для моего конструктора и супервызова? или я могу оставить свой код таким, какой он есть

6
duxfox-- 26 Апр 2016 в 18:31

2 ответа

Лучший ответ

Вы должны передать props, потому что вы расширяетесь от React.Component, иначе вам не будет разрешен доступ к this.props в конструкторе.

Это какая-то композиция.

0
QoP 26 Апр 2016 в 15:44

Вам не нужно передавать props в super, если вы не хотите использовать this.props в конструкторе.

https://stackoverflow.com/a/34995257/3238350

1
zarcode 11 Июн 2017 в 11:49