Я новичок, чтобы реагировать на родной фон .net,
Здесь вопрос заключается в том, чем HOC отличается от наследования в концепции OOPS наличием родительского класса с базовыми свойствами и дочерним элементом, который расширяет базу и использует состояние, свойства и базовые методы из базового класса.
Каков наилучший способ достижения иерархических отношений Parent-> Child -> GrandChild в React Components?
Например:
Parent.js Похоже на
class Parent extends Component
{
constructor(props)
{
super(props);
this.state = {
value: "Parent",
BaseText: "Inheritance Example"
}
}
onUpdate = () => {
console.log("Update called at Parent")
}
}
Child.js, расширяющий Parent.js.
class Child extends Parent
{
constructor(props)
{
super(props);
//this state should inherit the properties of Parent and override only the value property
this.state = {
value: "Child",
}
}
onUpdate = () => {
super.onUpdate();
console.log("Update called at Child view")
}
render()
{
return(
<View>
<Text> Child View</Text>
</View>
)
}
}
GrandChild.js является продолжением Child.js.
class GrandChild extends Child
{
constructor(props)
{
super(props);
//this state should inherit the properties of Child, Parent and properties specific to this
this.state = {
value: "GrandChild",
Name: "Test Grand Child"
}
}
onUpdate = () => {
super.onUpdate();
console.log("Update called at Grand Child view")
}
render()
{
return(
<View>
<Text> Grand Child View</Text>
</View>
)
}
}
Является ли это правильным способом реализации абстракции в React Native, скажем, родительский класс будет иметь общие свойства состояния, а дочерний элемент наследует родительское состояние и имеет свои собственные свойства.
Как в этом случае наследовать состояние и как обновить значения для состояния?
this.state
наследование в дочерних компонентах не будет хорошо работать с композицией компонентов, но я не могу придумать веской причины для этого. Если состояние становится таким сложным, возможно, необходимо использовать управление состоянием (Redux?). Компоненты должны быть реорганизованы, чтобы лучше соответствовать композиции, но я не могу предложить, как это сделать, потому что неясно, что на самом деле делают компоненты. Кстати,onUpdate
плохо сочетается с наследованием, потому что это метод экземпляра, аsuper.onUpdate
не будет, это должен быть метод прототипа. - person Estus Flask   schedule 09.11.2018