Я создал компонент с несколькими функциями для компонентов React, которые я хотел бы использовать в нескольких компонентах.
Я пытался реализовать его, но всякий раз, когда я пытаюсь вызвать super.updateHeader
, он вылетает с ошибкой
ExceptionsManager.js:84 Unhandled JS Exception: TypeError: TypeError:
Cannot read property 'call' of undefined
Использование super
в конструкторе работает без проблем.
Попытка достичь функции с this.updateHeader
приводит к
Unhandled JS Exception: TypeError: TypeError: this.updateHeader is not a function
Ни updateHeader
, ни функция, из которой я ее вызываю, не являются функциями стрелок.
Как мне решить это? (Они основаны на экземплярах, поэтому я бы хотел не создавать для этого какую-то библиотеку)
суперкомпонент:
class CustomRouteViewComponent extends Component {
updateHeader(props) {
const {settings, navigation} = props;
props.navigation.setParams({
headerTintColor: settings.theme === 'dark' ? commonColorDark.textColor : commonColor.textColor,
backgroundColor: settings.theme === 'dark' ? commonColorDark.headerStyle : commonColor.headerStyle,
});
};
}
const mapStateToProps = state => ({settings: state.settings});
export default connect(mapStateToProps)(CustomRouteViewComponent);
HomeScreen
class Home extends CustomRouteViewComponent {
componentWillMount() {
this.updateHeader(this.props);
}
render() {
return (
<View><Text>Hello!</Text></View>
)
}
}
const mapStateToProps = state => ({});
export default connect(mapStateToProps)(Home);