2017-12-08 13 views
-1

을 변경할 때 다음과 같은 탭 탐색 구조를 가지고 :콜링 클래스 메서드, 탭

TAB1 : 사운드 플레이어 화면 (당신이 소리를 재생할 수있는 경우),

TAB2 : 정보 화면,

tab3에 : 설정 화면,

사운드 플레이어 탭에서 정보 또는 설정 탭으로 전환 할 때 사운드 플레이어의 재생이 중지되기를 원합니다 (클래스에 stop() 메서드가 있음). tabBarOnPress를 사용하려고했지만 실제로 stop 메서드를 호출하는 방법을 이해하지 못합니다.

static navigationOptions = { 
    tabBarOnPress: ({previousScene,scene,jumpToIndex}) => { 
     previousScene.stop(); 
     jumpToIndex(scene.index); 
    } 
} 
+0

시도한 것을 게시하십시오. – Mickers

답변

0

이는 현재 라이브러리의 현재 상태에 포커스가있는 화면을 알고 매우 까다로운 것으로 판명 때문에, react-navigation을 사용하여 달성하기 위해 의외로 어렵다 (긴 문제를 참조 :이 같은 물건을 시도했습니다 here).

한 가지 해결책은 확인 할 수있는 소품에 부울 값을 제공하는 화면 구성 요소를 래핑하는 react-navigation-is-focused-hoc을 사용하는 것입니다. 당신은 당신의 tab1componentWillUpdate에 다음과 같은 것을 넣을 수 있음을 감안할 때 :

componentWillUpdate (nextProps) { 
    if (!nextProps.isFocused) { 
    // component is going out of focus, stop the music 
    this.stop() 
    } 
} 

참고 : 나는 링크 된 라이브러리의 버전을 사용하는 것이 좋습니다, 그것은 날짜까지 조금 더 패트릭 워즈니악의 포크입니다.