ReactJSおよびES6でコンポーネントクラスを継承しているときに、インスタンス関数を参照するデフォルトプロパティを追加しようとしています。具体的には、私はNPMからの日付ピッカーを持っている(日ピッカー反応する)と2つのプロパティは常に、基本クラスに送信されていることを確認する:ES6でreactjsクラスを継承するときのデフォルトプロパティを追加
export default class DayPicker extends BaseDayPicker {
constructor(props) {
var { ...newProps } = props;
newProps.onMouseDown = this.onDayPickerMouseDown;
newProps.onMouseUp = this.onDayPickerMouseUp;
super(newProps);
}
componentDidMount() {
super.componentDidMount && super.componentDidMount();
window.addEventListener('mousedown', this.onPageClick, false);
}
componentWillUnmount() {
super.componentWillUnmount && super.componentWillUnmount();
window.addEventListener('mousedown', this.onPageClick, false);
}
onPageClick = (e) => {
if (!this.isDayPickerMouseDown) {
this.props.onPageClick && this.props.onPageClick();
}
};
onDayPickerMouseDown = (e) => {
this.isDayPickerMouseDown = true;
};
onDayPickerMouseUp = (e) => {
this.isDayPickerMouseDown = false;
};
render() {
return super.render();
}
}
上記コードの問題私は'this' is not allowed before super()
を得るということです。
私はこれを解決する方法を見つけることができません。 this
を使用する必要があるデフォルトプロパティを追加できない場合は、レンダリングメソッドで解決できますか?
'super(newProps);'をコンストラクタ関数の一番下に移動します。 – Andy
これは、私の新しいプロパティをレンダリングから除外します。 – Sten