Как устранить ошибку «Не удается установить свойство« страницы »с неопределенной» в TypeScript? - PullRequest
0 голосов
/ 08 июля 2019

Я хочу определить видимость определенных элементов на основе userType в TypeScript, который вошел в систему. Однако, когда я пытаюсь определить страницы, я получаю ошибку времени выполнения, которая не может установить страницы свойств неопределенного. Пожалуйста, помогите мне, пожалуйста.

Мой код:


    export class MenuPage implements OnInit {
      pages : [];
      value="";

      definepages(){ 
        var pages=[];
        var usersRef = firebase.database().ref().child('Users');
        var userEmail = "";
        var userType = "";
        firebase.auth().onAuthStateChanged(function (user) {
          if (user) {
            console.log(user.email);
            userEmail = user.email;
            //userType = user.userType;
          } else {
            // No user is signed in.
          }
        });

        var counter = 0;
        var currentUserData = {};
        usersRef.once("value", function (snapshot) {
          pages=[];
          snapshot.forEach(function (c) {
            if (userEmail == c.val().email) {
              currentUserData["email"] = userEmail;
              currentUserData["entity"] = c.val().userType;
              if( currentUserData["entity"]== 'Admin')
              {

               this.pages = [
              {
                title:'Home',
                url:'/menu/home',
                display:'false',
                icon:'home'
              },
              {
                title:'Register',
                url:'/menu/register',
                display:'true',
                icon:'create'
              },
              {
                title:'Login',
                url:'/menu/login',
                display:'true',
                icon:'log-in'
              },
              {
                title:'Shop by Brand',
                url:'/menu/brand',
                display:'true',
                icon:'log-in'
              },
              {
                title:'Shop by Category',
                url:'/menu/category',
                display:'true',
                icon:'log-in'
              },
            ];
            }
            else if(currentUserData["entity"]== 'Sakhi')
            {
              this.pages=[
                {
                  title:'My Inventory',
                  url:'/menu/my-inventory',
                  display:'true',
                  icon:'log-in'
                },
                {
                  title:'Contact-Us',
                  url:'/menu/contact',
                  display:'true',
                  icon:'contacts'
                },
              ];
              console.log("hello");
            }     
            }//check user email details

          });

        }
        );
      }
      constructor() { this.pages=[]}

      ngOnInit() {
        this.definepages();
      }

    }

Я получаю следующую ошибку:

ОШИБКА TypeError: Невозможно установить свойство 'pages' из неопределенного на menu.page.ts: 40.

1 Ответ

0 голосов
/ 09 июля 2019

У вас есть эти строки под областью действия функции pages=[];, которая в основном выдает ошибку, вы, вероятно, хотели заменить на this.pages. И я вижу, что вы также создаете var pages локальную переменную, не уверен, если вам это нужно, можно заменить на this.pages = [].

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...