Я использовал react-datepicker
.Я столкнулся с некоторой проблемой.defaultValue = {updateData.date} не работает.Это не показывает данные.Если использовать value="{updateData.date}"
, то отображаются данные, но их нельзя редактировать.Как я могу решить это?Кроме того, есть другая проблема, если я использовал placeholderText, он показывает и работает правильно, но показывает ошибку в консоли. ошибка консоли
class EditEvent extends React.Component{
EventUpdate(e){
e.preventDefault();
let eventDate = e.target.date.value;
let myId = this.props.match.params.id;
Events.update(
{_id : myId},
{date: eventDate,},
function(err) {
if (err){("#message").removeClass("alert-success").addClass("alert-danger").text(err.reason);}
else{$('.upload-event-from').trigger("reset");}
}
);
}
constructor(props) {
super(props);
this.state = {startDate: ''};
this.handleChange = this.handleChange.bind(this);
}
handleChange(date) {
this.setState({
startDate: date
});
}
render(){
const {
loading,
updateData,
} = this.props;
return loading ? null : (
<div>
<PrivateHeader title="Discover Page"/>
<form className="upload-event-from plr-15" onSubmit={this.EventUpdate.bind(this)}>
<div className="form-group fg-icon">
<DatePicker
defaultValue={updateData.date}
className="form-control"
id="event_date_time"
name="date"
selected={this.state.startDate}
onChange={this.handleChange}
showTimeSelect
timeFormat="HH:mm"
timeIntervals={15}
dateFormat=""
timeCaption="time"
autocomplete="off"
/>
</div>
<center>
<button type="submit" className="btn app-btn">Update</button>
</center>
</form>
<PrivateFooter title="Events Page"/>
</div>
);
}
}
export default withTracker((props) => {
const subscription = Meteor.subscribe('allowedData'); //Dat
const handle = props.match.params.id;
return {
loading: !subscription.ready(),
updateData: Events.findOne({_id:handle}),
};
})(EditEvent);