>

React-Native 사용법을 배우고 있는데 이런 종류의 문제에 어려움을 겪고 있습니다.

내가해야 할 일은 사용자 역할에 따라 보이는 텍스트를 오른쪽에 삽입 할 수있는 페이지에 대한 Navbar 사용자 정의를 만드는 것입니다. 특히이 텍스트를 사용하면 특정 사용자 역할에 로그 아웃 할 수 있습니다.

현재 모든 사용자를 위해이 기능을 구현했습니다.

경로와 장면을 넣은 페이지 (라우터 플럭스 사용)에서 로그 아웃을 초기화했습니다 :

static logout() {
User.clearLoggedUser();
App.redirectLogout();
}

render() {
    return (
      <Router>
      <Scene
            key="homepage"
            component={Homepage}
            type="reset"
            leftTitle="Home"
            leftButtonTextStyle={{ color: "#ffffff" }}
            onLeft={() => Actions.authentication()}
            rightButtonTextStyle={{ color: "#ffffff" }}
            rightTitle="Logout"
            onRight={() => App.logout()}
            navigationBarStyle={{ backgroundColor: "#64c7c0" }}
          />

따라서 홈페이지 오른쪽에있는 앱의 오른쪽 상단에 로그 아웃됩니다 (그러나 일부 역할에는 적용되지 않는 모든 항목에 해당).

홈페이지에서 다음 역할을 수행합니다.

class Homepage extends Component {
    constructor(props) {
        super(props);
    }
    render() {
        const Roles = global.user.data.Person.Roles

따라서 {Roles}가 "일부 역할"과 같으면 로그 아웃 버튼을 클릭하지 않아야합니다.

어떻게 할 수 있습니까? 도와 주셔서 감사합니다.


  • 답변 # 1

    씬을 렌더링 할 때 더 많은 로직을 구현해야 할 것 같습니다. 다음 줄을 따라 해보십시오 :

    static logout() {
    User.clearLoggedUser();
    App.redirectLogout();
    }
    render() {
        return (
          // These variables could also be stored in the state, 
          // depending on when/if they change and the scope you need them in.
          let currentRole = global.user.data.Person.Roles; // Or wherever the 
                                                    // current role is stored
          let isLoggedIn = // boolean value to hold if anyone is logged in or not
          <Router>
          <Scene
                key="homepage"
                component={Homepage}
                type="reset"
                leftTitle="Home"
                leftButtonTextStyle={{ color: "#ffffff" }}
                onLeft={() => Actions.authentication()}
                rightButtonTextStyle={{ color: "#ffffff" }}
                rightTitle={isLoggedIn ? "Logout " + currentRole : ""}
                onRight={isLoggedIn ? () => App.logout() : null}
                navigationBarStyle={{ backgroundColor: "#64c7c0" }}
              />
    
    

    오른쪽 버튼에는 표시 여부와 클릭 여부를 알려주는 논리가 필요합니다. 현재 사용자 역할을 사용하여 가변 로그 아웃 버튼을 만들 수도 있지만 홈페이지보다 한 범위 높은 해당 역할 이름에 액세스해야합니다.

    위 코드는 현재 역할 관리자가 로그인 한 경우 오른쪽 버튼에 '로그 아웃 관리자'라고 표시되며, 아무도 로그인하지 않은 경우 오른쪽 버튼은 아무 것도 말하지 않고 클릭 동작이 없습니다.

  • 이전 python - for 루프를 사용하여 1 그림의 여러 플롯
  • 다음 스위프트 - 바이트 배열에서 임의의 기본 문자열 만들기