如何在onDateChange执行本机反应以上的事情?

时间:2018-09-27 07:51:52

标签: reactjs react-native

我有这个日期设定者,我想在onDateChange将日期更改为选定日期时执行功能管理,但是它给了我

  

找不到可变日期

这是我的代码:

      constructor(props){
        super(props);
        this.state ={
     date:'',
    };
      }


manage = () => {
 this.setState({date:date})
  const  url='myIP/api/timeApi';
axios.post(url,{date})
.then(resp =>alert('done'))
.catch(err => alert(err));
}

            <DatePicker
               date={this.state.date}
                mode="date"
                format="DD/MM/YYYY"
                confirmBtnText="Confirm"
                cancelBtnText="Cancel"
                }}
                onDateChange={this.manage.bind(this)}

1 个答案:

答案 0 :(得分:0)

永远不要直接在render中绑定,而总是在构造函数中绑定。您知道如果直接在rende中进行绑定会发生什么,每次组件渲染时,它将在Webpack捆绑文件中创建一个新函数。但是,如果您执行该构造函数,则它只会被创建一次,因为每个组件只能被调用一次

关于您的问题,onDataChange道具会返回日期,因此您需要获取如下所示的日期

 constructor(props){
    super(props);
    this.manage = this.manage.bind(this);
 }

 manage = date => {
   this.setState({date:date})
   const  url='myIP/api/timeApi';
   axios.post(url,{date})
   .then(resp =>alert('done'))
   .catch(err => alert(err));
 }

 <DatePicker
           date={this.state.date}
            mode="date"
            format="DD/MM/YYYY"
            confirmBtnText="Confirm"
            cancelBtnText="Cancel"
            }}
            onDateChange={this.manage}