0

他,我试图修改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 推荐组合而不是继承。

4

1 回答 1

0

screens.MediumPlaceDetailsredux不是 React Component 类,而是一个shoutem.theme装饰类,这就是为什么当您扩展时您无法访问任何renderLeadImage()'s 方法。

所以你必须改变你的import

import { MediumPlaceDetails } from 'shoutem.places/screens/MediumPlaceDetails';

编辑:修复了复制粘贴错误。

于 2017-07-10T07:07:34.487 回答