Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/70.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript jquery timepicker不会使用React更新道具更改_Javascript_Jquery_Reactjs_Timepicker - Fatal编程技术网

Javascript jquery timepicker不会使用React更新道具更改

Javascript jquery timepicker不会使用React更新道具更改,javascript,jquery,reactjs,timepicker,Javascript,Jquery,Reactjs,Timepicker,我正在尝试在我的React应用程序中使用这个时间选择器。我围绕它编写了一个简单的类,并将当前时间传递给它,无论它在组件外部发生了什么变化 看起来是这样的: import React, { Component } from 'react'; import jQuery from 'jquery'; require('../../../node_modules/jquery-timepicker/jquery.timepicker.js'); export default class TimeP

我正在尝试在我的React应用程序中使用这个时间选择器。我围绕它编写了一个简单的类,并将当前时间传递给它,无论它在组件外部发生了什么变化

看起来是这样的:

import React, { Component } from 'react';
import jQuery from 'jquery';

require('../../../node_modules/jquery-timepicker/jquery.timepicker.js');

export default class TimePicker extends Component {
  constructor(props) {
    super(props);
    this.state = {
      minTime: props.minTime || '6',
      maxTime: props.maxTime || '23',
      interval: props.interval || 15,
      defaultTime: props.defaultTime || '10',
      startTime: props.startTime || '6',
    };
    this.timepicker = {};
    this.onChange = this.onChange.bind(this);
  }

  onChange(value) {
    this.setState({
      value,
    }, () => {
      const { onChange } = this.props;

      if (typeof onChange === 'function') {
        this.props.onChange(value);
      }
    });
  }

  componentDidUpdate() {
    const {
      minTime,
      maxTime,
      interval,
      defaultTime,
      startTime,
    } = this.state;
    jQuery(this.timepicker).timepicker({
      timeFormat: 'HH:mm',
      interval,
      minTime,
      maxTime,
      defaultTime,
      startTime,
      dynamic: true,
      dropdown: true,
      scrollbar: true,
      change: (value) => {
        this.onChange(value);
      },
    });
  }

  componentWillReceiveProps(nextProps) {
    this.setState({
      defaultTime: nextProps.defaultTime,
    });
  }

  componentDidMount() {
    const {
      minTime,
      maxTime,
      interval,
      defaultTime,
      startTime,
    } = this.state;

    jQuery(this.timepicker).timepicker({
      timeFormat: 'HH:mm',
      interval,
      minTime,
      maxTime,
      defaultTime,
      startTime,
      dynamic: true,
      dropdown: true,
      scrollbar: true,
      change: (value) => {
        this.onChange(value);
      },
    });
  }

  render() {
    return (
      <input
        className="timepicker"
        ref={(timepicker) => { this.timepicker = timepicker; }}
      />
    );
  }
}

TimePicker.propTypes = {
  minTime: React.PropTypes.string,
  maxTime: React.PropTypes.string,
  interval: React.PropTypes.number,
  defaultTime: React.PropTypes.string,
  startTime: React.PropTypes.string,
  onChange: React.PropTypes.func,
};
import React,{Component}来自'React';
从“jQuery”导入jQuery;
require('../../../node_modules/jquery timepicker/jquery.timepicker.js');
导出默认类时间选择器扩展组件{
建造师(道具){
超级(道具);
此.state={
minTime:props.minTime | | |“6”,
maxTime:props.maxTime | | |“23”,
间隔:道具。间隔| | 15,
defaultTime:props.defaultTime | |“10”,
startTime:props.startTime | | |“6”,
};
this.timepicker={};
this.onChange=this.onChange.bind(this);
}
onChange(值){
这是我的国家({
价值
}, () => {
const{onChange}=this.props;
if(类型onChange=='function'){
this.props.onChange(值);
}
});
}
componentDidUpdate(){
常数{
minTime,
maxTime,
间隔
默认时间,
开始的时候,
}=本州;
jQuery(this.timepicker).timepicker({
时间格式:“HH:mm”,
间隔
minTime,
maxTime,
默认时间,
开始的时候,
动态:是的,
下拉列表:正确,
滚动条:对,
更改:(值)=>{
这个。onChange(值);
},
});
}
组件将接收道具(下一步){
这是我的国家({
defaultTime:nextProps.defaultTime,
});
}
componentDidMount(){
常数{
minTime,
maxTime,
间隔
默认时间,
开始的时候,
}=本州;
jQuery(this.timepicker).timepicker({
时间格式:“HH:mm”,
间隔
minTime,
maxTime,
默认时间,
开始的时候,
动态:是的,
下拉列表:正确,
滚动条:对,
更改:(值)=>{
这个。onChange(值);
},
});
}
render(){
返回(
{this.timepicker=timepicker;}}
/>
);
}
}
TimePicker.propTypes={
minTime:React.PropTypes.string,
maxTime:React.PropTypes.string,
间隔:React.PropTypes.number,
defaultTime:React.PropTypes.string,
开始时间:React.PropTypes.string,
onChange:React.PropTypes.func,
};
在第一次装载时,时间是当前设置的,但是当我通过新时间并尝试在
组件中设置状态时,时间不会更新


我缺少什么?

默认时间用于设置初始时间,但不用于更改现有选择器中的时间

对于更改时间,请使用下面的代码(在componentDidUpdate中)


对不起,它不起作用。你是在哪里发现赛时道具的?我在文件里找不到它。
jQuery(this.timepicker).timepicker({'setTime', TIME);