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';

РЕДАКТИРОВАТЬ: Исправлена ​​ошибка копирования-вставки.

Другие вопросы по тегам