私の状況は、ナビゲーションコンポーネントがあり、ベースであり、Navigations
の状態(Redux)を聞いています。これは、将来再利用可能なコードのためにHorizontalNavigationとVerticalNavigationに拡張する必要があります。"接続された"コンポーネントをどのように拡張できますか?
私の問題は、今はNavigation.jsxの「最終版」がすでにあります。クラスとして拡張できますが、メソッドをオーバーライドできません。これは、スーパー(ナビゲーション)メソッドをトリガーし、最後のメソッドはトリガーしません。私は、水平または垂直コンポーネントのメソッドをオーバーライドする必要があります。
コンソールにコードエラーはありませんので、何か壊れているわけではありませんが、どのようにそれを拡張するのかわかりません。
Navigation.jsx
import React, {Component} from 'react';
import ReactDOM from 'react-dom';
import { connect } from 'react-redux';
import { itemAction, stageAction } from 'Store/Actions/Actions';
class Navigation extends Component {
// ACTIONS
leftAction() {
this.onLeftAction();
}
onLeftAction() {}
rightAction() {
this.onRightAction();
}
onRightAction() {}
downAction() {
this.onDownAction();
}
onDownAction() {}
upAction() {
this.onUpAction();
}
onUpAction() {}
// STAGES
nextStage (slug) {
this.goToStage(slug);
}
previousStage (slug) {
this.goToStage(slug);
}
goToStage (slug) {
// Just for illustration purpose
// let { dispatch } = this.props;
// dispatch(stageAction(slug));
}
// ITEMS
nextItem (index) {
this.goToItem(index);
}
previousItem (index) {
this.goToItem(index);
}
goToItem (index) {
// Just for illustration purpose
// let { dispatch } = this.props;
// dispatch(itemAction(index));
}
render() {
return();
}
}
function mapStateToProps (state, props) {
navigation: state.Navigations[props.slug]
}
export default connect(mapStateToProps)(Navigation);
Horizontal.jsx
import React from 'react';
import Navigation from 'Components/Navigation/Navigation';
class HorizontalNavigation extends Navigation {
onLeftAction (previousItemIndex) {
this.previousItem(previousItemIndex);
}
onRightAction (nextItemIndex) {
this.nextItem(nextItemIndex);
}
onTopAction (slug) {
this.previousStage(slug);
}
onDownAction (slug) {
this.nextStage(slug);
}
}
export default HorizontalNavigation;
VerticalNavigationは反対であろう。ステージの左右。アイテムの上下。
私はナビゲーションコンポーネント私は水平または垂直を使用して、何度も何度も同じ正確なロジックを書き換えることができ、それぞれの時間を再利用する必要はありません。