选择日期后,我想重新加载页面。我有一个叫做refreshmap的道具。
我是新手。
我想在日期更改时在onChange时触发功能(“ refreshmap”):
import React, { Component } from 'react';
import DateTimePicker from 'react-datetime-picker';
import MapLeaflet2 from './MapLeaflet2';
class Picker extends Component {
state = {
date: new Date(),
}
onChange = (date,refreshmap) => this.setState({date},
function(){
const DateContext =this.state.date;
refreshmap()
})
render() {
return (
<div>
<DateTimePicker
onChange={(date) => this.onChange(date, this.refreshmap)}
value={this.state.date}
/>
<MapLeaflet2 date = {this.state.date.toString()}/>
)}
</div>
);
}
}
export default Picker;
在这里我得到这个错误:
TypeError:refreshmap不是函数
作为示例,我在这里使用它作为按钮。它运作良好。
import React from 'react';
import mapButtonStyles from './mapButtonStyles';
const RefreshButton = ({ refreshmap}) => (
<button
type="button"
style={mapButtonStyles}
className="map-button"
onClick={refreshmap}
>
<i className="fas fa-sync-alt fa-2x" />
</button>
);
export default RefreshButton;
它可以与按钮组件完美配合,但不能与Picker配合使用。我收到错误消息TypeError:refreshmap不是函数
如前所述,我是新手,所以任何建议或观察都将非常有价值!
最佳答案
我猜你可以在onChange函数中触发您的refreshmap函数:
onChange = date => this.setState({date},
function(){
const DateContext =this.state.date;
this.props.refreshmap();
})
与:
<DateTimePicker
onChange={this.onChange}
value={this.state.date}
/>