Это приводит к созданию новой функции MySubComponent
для каждого экземпляра MyComponent
, что является не очень эффективным способом сделать это.
Может быть только два преимущества использования MySubComponent
как MyComponent
method.
Одним из них является то, что MySubComponent
можно заменить другой реализацией в подклассе MyComponent
без изменения функции render
.Это не идиоматично для React, потому что он продвигает функциональный подход вместо ООП.
Другое - то, что MySubComponent
может получить доступ к MyComponent
экземпляру и его свойствам.Это приводит к проблеме проектирования, потому что два компонента тесно связаны между собой.
Ни один из этих аргументов не является существенным в разработке React.Если нет особых потребностей, требующих, чтобы MySubComponent
был частью MyComponent
, первый не должен определяться как метод экземпляра второго.Это может быть просто:
const MySubComponent = (props) => {
if (props.display) {
return <p>This text is displayed</p>
}
}
class MyComponent extends React.Component {
render() {
return (
<MySubComponent display={true} />
)
}
}