Shoutem - Модификация расширений
Он, я пытался изменить shoutem.places
расширение. Мой пользовательский экран выглядит так:
import { screens } from 'shoutem.places';
export default class FixedMediumPlaceDetails extends
screens.MediumPlaceDetails {
render() {
const { place } = this.props;
const { location = {} } = place;
return (
<Screen>
<NavigationBar />
<ScrollView>
{this.renderLeadImage(place)}
</ScrollView>
</Screen>
);
}
}
Я просто переопределяю render()
метод, и внутри этого метода я хотел бы вызвать renderLeadImage()
метод из суперкласса.
С этой реализацией я получаю: this.renderLeadImage() is not a function
, Итак, как мне правильно наследовать класс и вызывать метод суперкласса? Во всяком случае, наследование является предпочтительным способом здесь? Facebook рекомендует композицию по наследству.
1 ответ
screens.MediumPlaceDetails
не класс React Component, а скорее redux
а также shoutem.theme
украшенный класс, поэтому, когда вы расширяетесь, у вас нет доступа ни к одному из renderLeadImage()
методы.
Так что вам придется изменить свой import
:
import { MediumPlaceDetails } from 'shoutem.places/screens/MediumPlaceDetails';
РЕДАКТИРОВАТЬ: Исправлена ошибка копирования-вставки.