씬 내에서 사이드 메뉴에 액세스 한 후 네비게이터의 왼쪽 팝 제스처에서 스 와이프를 비활성화하고 싶습니다. 장면을 처음 렌더링 할 때 사이드 메뉴가 열려있을 때만 비활성화하는 것을 원하지 않습니다. 전화 할 수있는 onOpen
함수가 있지만 프로그래밍 방식으로 탐색 경로를 변경하지 않고 탐색 동작을 변경하는 방법을 알지 못합니다.네이티브 네비게이터 반응 : 사용자 동작 후에 장면에서 네비게이션 동작을 제거 할 수 있습니까?
아이디어
씬 내에서 사이드 메뉴에 액세스 한 후 네비게이터의 왼쪽 팝 제스처에서 스 와이프를 비활성화하고 싶습니다. 장면을 처음 렌더링 할 때 사이드 메뉴가 열려있을 때만 비활성화하는 것을 원하지 않습니다. 전화 할 수있는 onOpen
함수가 있지만 프로그래밍 방식으로 탐색 경로를 변경하지 않고 탐색 동작을 변경하는 방법을 알지 못합니다.네이티브 네비게이터 반응 : 사용자 동작 후에 장면에서 네비게이션 동작을 제거 할 수 있습니까?
아이디어
을 감상 할 수있다 나는 당신이 할 수있는 생각 configureScene={() => { return this.state.swipeBackNavigation ? FloatFromRight : Navigator.SceneConfigs.FloatFromRight; }
과 상태를 변경하지만, 구성 요소가 없습니다 다시 쓰게 수행합니다
는이 같은 네비게이터의 configureScene 소품을 설정하려 단지 세트 제스처 (효과적으로 해제)를 null로 :
gestures: {}
나는 현재이 테스트 할 수 없습니다,하지만 (내가 어딘가에 몇 가지 구문을 망치지 않은 경우) 나는 그것이 작동 생각 : 당신이 원하는 때마다
export default class Foo extends Component {
constructor(props){
super(props);
this.state = {
//initialize gestureChoice
gestureChoice: {},
}
}
disablePop(){
setState({ gestureChoice:{ gestures:{} } });
}
enablePop(){
setState({gestureChoice: ...Navigator.SceneConfigs.FloatFromRight});
}
render(){
return(
<Navigator
renderScene={(route, navigator) =>
return <SomeScene navigator={navigator} {...route.passprops} />
}
configureScene={(route, routeStack) =>
this.state.gestureChoice;
)}
/>
);
}
}
아이디어의 존재, 당신은 enablePop()
및 disablePop()
을 사용할 수 있습니다 . 답에 대한 https://github.com/facebook/react-native/issues/1014
감사합니다,하지만 난 이미 시도 :
이 스레드
아마 도움이됩니다. 이는 제스처를 제거하지만 새로운 경로가 네비게이터에 푸시 된 후에 만 효과가 있습니다. 새로운 경로를 선택하지 않고도 사용할 수 없게하는 기능이 필요했습니다. 동일한 경로에 머무르는 동안 탐색기 구성을 다시로드 할 수있는 방법이 있다면 –