选择日期后,我想重新加载页面。我有一个叫做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}
    />

10-07 17:37