2017-02-15 5 views
0

나는이 다음과 같은 몇 가지 코드를 사용하여 반응 프로젝트 :GET 요청

componentDidMount() { 
    window.addEventListener('scroll', this.handleScroll); 
}; 

componentWillUnmount() { 
    window.removeEventListener('scroll', this.handleScroll); 
}; 

handleScroll(event) { 
    this.load(); 
}; 

load() { 
    console.log('Loading'); 
    $.get('/latest-dishes?page=1&items=6', function(data) { 
     console.log('Loaded'); 
     console.log(data); 
    }); 
} 

render() { 
    return (
     <div> 
      <button onClick={e => this.load()}>Load</button> 
     </div> 
    ) 
} 

나는 지역에 서버를 실행합니다. 버튼을 클릭하면 데이터가 즉시로드됩니다.

그러나 "한 단위"를 스크롤하면 데이터로드가 느려집니다.

Windows 7에서 Google 크롬을 사용하고 있습니다.

왜 이런 일이 발생합니까?

UPDATE 1

나는이 프로젝트는, 그것은 파이어 폭스에서 잘 작동 테스트를했습니다,이 문제는 크롬에 발생합니다.

업데이트 2

이 문제는 그것은 구성 요소가 마운트 초기 상태 후에 트리거했기 때문에 마운트 구성 요소 반면 렌더링 않은 대신 구성 요소의 마운트를 사용하여 구성 요소

+0

'load()'함수를'window'의'scroll' 이벤트에 붙이는 용도는 무엇입니까? 모든 스크롤을 사용하면 데이터의 백 배를 가져 오는 중입니다 ... – dashtinejad

+0

"하나의 유닛"만 스크롤합니다. 그것은 크롬 56의 버그 인 것 같습니다. –

+0

콘솔은 무엇을 인쇄합니까? "하나의 유닛"을 스크롤 할 때 콘솔에'Loading' 메시지가 즉시 로깅됩니까? – DomeTune

답변

0

크롬 58에서 잘 작동 크롬 (56)에서 발생 전에 트리거 렌더링 마운트

componentWillMount() { 
window.addEventListener('scroll', this.handleScroll);}; 

더 preferance이 읽기 :

http://busypeoples.github.io/post/react-component-lifecycle/

+0

이 문제는 크롬에서만 발생합니다. Firefox는 잘 작동합니다. –

+0

코드를 사용했습니다. 변경 없음 –

+0

다른로드 기능을 호출하는 대신 스크롤 할 때로드합니다. –