2017-10-10 30 views
0

我試圖更新div標記中的文本,只要startDate和endDate獲取新值但div顯示舊值。我怎麼可以更新狀態改變爲div文本React如何更改狀態變化的div文本

import moment from 'moment'; 
import DatetimeRangePicker from 'react-bootstrap-datetimerangepicker'; 
class TestPage extends Component { 
constructor(props) { 
super(props); 
this.state = { 
startDate: moment().subtract(1, 'days').format('YYYY-MM-DD HH:mm'), 
endDate: moment().format('YYYY-MM-DD HH:mm'), 
}; 
} 

handleChange(event, payload) { 
this.setState({ 
startDate: payload.startDate.format('YYYY-MM-DD HH:mm'), 
endDate: payload.endDate.format('YYYY-MM-DD HH:mm') 
}); 
this.onChange(); 
this.props.sendDateRanges(payload); 
} 

onChange() { 
return `${this.state.startDate} - ${this.state.endDate}`; 
}); 
} 
render() { 
return (<div> 
<DatetimeRangePicker 
timePicker 
showDropdowns 
onShow={this.handleChange.bind(this)} 
onApply={this.handleChange.bind(this)} 
> 
</DatetimeRangePicker> 
<div>{onChange()}</div> </div>); 
} 
export default connect(mapStateToProps, actions)(TestPage); 

回答

0

刪除您onChange功能,做到這一點,而不是...

render() { 
const dateDiff = `${this.state.startDate} - ${this.state.endDate}`; 
return (<div> 
<DatetimeRangePicker 
timePicker 
showDropdowns 
onShow={this.handleChange.bind(this)} 
onApply={this.handleChange.bind(this)} 
> 
</DatetimeRangePicker> 
<div>{dateDiff}</div> </div>); 
+0

它的工作謝謝 – NSh

相關問題