1

코드에서 사용자가 버튼을 클릭 한 후 첫 페이지 (로그인) 페이지로 리디렉션하고 싶습니다.React Native : 앱 다시로드 또는 다시 렌더링

navigator.push를 사용하여이 작업을 시도했지만 작동하지만 여전히 맨 아래의 머리글과 tabbarios가 표시됩니다.

그냥 버튼 하나만으로 응용 프로그램을 다시로드하거나 강제로 index.ios를 렌더링 할 수 있습니까? (루트 페이지 다시 렌더링)

나는 또한 TabBarIOS와 동일하게 작업하려고합니다. 탭에서 스크롤하거나 더 깊게 갈 때마다 다른 탭으로 이동하여 첫 번째 탭으로 돌아 왔을 때 다시 렌더링되지 않습니다. 마지막 상태를 보여줍니다.

미리 감사드립니다.

답변

1

코드없이보기가 약간 어렵습니다.

특정 조건에서 화면을 새로 고침 하시겠습니까?

화면이 구성 요소이고 구성 요소 상태 (this.setState())를 변경하면 페이지에서 해당 상태 값이 변경됩니다.

[업데이트] 해명

감사합니다 : 그것은 TabBar의를 제거하고 로그인을 표시해야합니다

render(){ 

    if(this.state.logout){//Whatever condition you want to be met. 
     return (<Login />); 
    } 
    else{ 
     return (<TabBarIOS ... />); 
    } 

} 

:

그래서, 색인에 당신이 뭔가를 할 수 있습니다 렌더링합니다.

+0

내 index.ios에는 TabBarIOS가 있습니다. 탭 중 하나는 Profile.js를 렌더링하는 Profile입니다. profile.js에 로그 아웃 버튼이있다. 로그 아웃이 먼저 눌려지면 로그인 상태를 false로 설정하고 login.js라는 로그인 페이지로 리다이렉트해야한다. navigator.push가 작동하지만 여전히 TabBarIOS가 표시됩니다. 앱이 처음로드되면 로그인하지 않은 경우 로그인 페이지가 표시됩니다. 프로필 페이지에서 로그 아웃을 클릭하면 실제로 로그인 상태를 false로 설정합니다. 난 그냥 다시로드해야 응용 프로그램이 필요합니다. – Ataomega

+0

"다시로드"가 없습니다. index.ios를 navigator 만 가지고 있어야 login.js 또는 main.js (TabBarIOS가 포함되어 있습니다) 경로를 설정할 수 있다고 생각합니다. TabBar가 main.js와 모든 구성 요소로 제한되어 있으므로, 로그인에 영향을주지 않아야합니다. –

+0

각 탭에서 다른 구성 요소를 렌더링하는 tabbarios 인덱스가 있습니다. 내가 말했듯이 그 중 하나는 프로필 구성 요소입니다. 프로필 구성 요소에는 로그 아웃 버튼이 있습니다. 그가 버튼을 클릭 할 때 다른 구성 요소로 사용자를 보내는 또 다른 방법은 없습니까? Navigator.push가 그랬지만 내가 말했듯이 여전히 tabbar를 보여줍니다. 나는 navigator.push에 대한 몇 가지 대안을 찾고 있습니다. – Ataomega

관련 문제