2016-08-20 4 views
1

슬라이더를 사용하여 시간별로 필터링하고 있습니다. 현재 휴대 전화에로드하고 사용하는 데 시간이 많이 걸리므로 슬라이더를 가로 질러 슬라이딩하면 시간이 실제로 표시되는 것 같습니다. 아래 코드는 왜 이런 일이 일어날 수 있는지에 대한 아이디어입니다. 우리가 우리의 가치를 계산하는 방법을 업데이트해야합니까 (주식 값으로 시도했는지, 상태를 설정했는지 그리고 지연을 보았 기 때문에 그렇게 생각하지는 않습니다). 현재 우리는이 슬라이더에 24 시간을 표시하려고합니다.React JS Slider Lag

감사합니다.

참고 : 우리는 코드를 검토하고 함수 호출뿐만 아니라 함수 this.setState ({value : this.limitMarkers (value)}를 중복 제거했습니다. 사람이 어떤 아이디어가 있으면 알려 주시기 바랍니다!

<Slider 
    minimumTrackTintColor={'#FFCD00'} 
    maximumTrackTintColor={'#e0e0e0'} 
    thumbStyle={{color: '#FFCD00', backgroundColor: '#FFCD00'}} 
    value={this.state.sliderValue} 
    maximumValue={this.state.maximumValue} 
    step={.5} 
    onValueChange={(value) => this.setState({value: this.limitMarkers(value)}) } 
    onSlidingComplete={ (value)=>{ SOME CODE }></Slider> 

제한 마커 기능

limitMarkers(i){ 

    var decimals = Math.round((i - Math.floor(i))*59); 
    i = Math.floor(i); 
    var hours = currentHour+i; 
    var time; 

    if(hours > 12){ 
     if(hours > 24){ 
     if(hours > 36){ 
      hours = hours - 36; 
      time = ' PM'; 
      labelIsTomorrow = true; 
     } 
     else{ 
      hours = hours - 24; 
      time = ' AM'; 
      labelIsTomorrow = true; 
     } 
     } 
     else{ 
     hours = hours - 12; 
     time = ' PM' 
     labelIsTomorrow = false; 
     } 
    } 
    else { 
     time = ' AM' 
     labelIsTomorrow = false; 
    } 

    if(decimals < 10) decimals='0'+decimals; 

    this.setState({ 
     label: hours+":"+(decimals), 
     TOD: time 
    }); 

    return hours; 
    } 

답변

1

코드, 우리는 디버그 모드에서 응용 프로그램을 실행 한 때문이었다. 우리는 릴리스 모드에 넣어 일단 작동 지연을 제거한 디버그가 사라졌습니다.