私はcheckin
とcheckout
のフィールドを持ち、pickaday jquery datepicker
を反応コンポーネントpickadayに統合しようとしています。私はチェックインとチェックアウトの両方のフィールドを親コンポーネントの状態として持っていて、作成したコンポーネントのdatepicker
にそれらを渡します。私がしたのはcomponentDidMount
を使ってを初期化し、それが期待どおりに動作することです。ここでの問題は、最初にminDateを設定できるのは、状態が変わるときに値を更新しないということだけです。jqueryを反応コンポーネントに追加して状態を更新する
DatePicker.js.jsx私はこのようなコンポーネント(minDate
は私が唯一の初期負荷で動作します渡し、その後動作していない??)
{/*Checkin and checkout dates*/}
<div className="col s12 m6 l6 rd-custom-input">
<DatePicker name={'checkIn'} value={this.props.checkIn}
onChange={this.handleNamedChange} minDate={this.props.checkIn}/>
</div>
<div className="col s12 m6 l6 rd-custom-input">
<DatePicker name={'checkOut'} value={this.props.checkOut}
onChange={this.handleNamedChange} minDate={this.props.checkIn}/>
</div>
の上に呼び出す親コンポーネントで
var DatePicker = React.createClass({
//This is a callback to parent component for updating the state
changeDuration: function (date) {
this.props.onChange(this.props.name, date);
},
componentDidMount: function() {
var _self = this;
var picker = new Pikaday({
field: document.getElementById(this.props.name),
format: 'D MMM YYYY',
onSelect: function() {
_self.changeDuration(this.getMoment().toDate())
},
minDate: this.props.minDate
});
},
render: function() {
return (
<input type="text" id={this.props.name} defaultValue={this.props.value}/>
)
}
});
date
をdatepicker
に選択すると、componentDidMount
の状態が間違っていると思われます。誰かが私に何が間違っているのか教えてもらえますか?
個人的にはReactでjQuery UIライブラリを使用せず、使用する特定の特定のライブラリを見つけることができます。主な問題は、jQueryとReactの両方がDOMを制御してDOMを変更できるようにすることです。 jQueryがDOM/UIを更新し、リアクション通知が何か変更されたが、変更されなかった場合に実行できます。 DOMはそれが望むようにDOMを再レンダリングします。あなたはそのタイプの問題を抱えていないかもしれませんが、あなたの注意にそれを持ってきたかったかもしれません。 – finalfreq
@finalfreqはい..私はあなたがここにいると思っています..しかし、私が反応のために見つけたすべてのdatepickerライブラリはwebpackを使用していて、アセットパイプライン。 jqueryライブラリは、私のケースでは他の依存関係がなくても簡単に統合できます。 – Abhilash