2016-06-13 11 views
0

반응 네이티브 앱에서 단일 사인온 기능을 추가하려고합니다. 나는 데이터 영속성을 위해 영역을 사용하고있다. 로그인 과정에서 잘 작동하고 사용자가 첫 번째 로그인 할 때 데이터를 저장합니다. 하지만 네비게이터 오른쪽 상단의 로그 아웃 버튼을 클릭하면 로컬 스토리지에서 사용자 객체를 제거하고 싶습니다. 내가 onRightButtonPress 이벤트에 영역 저장 영역에서 사용자 개체를 삭제하려고하면NavigatorIOS에서 오른쪽 영역 개체를 삭제할 수 없습니다. 오른쪽 클릭 동작

home screen

가 나는 Invalid arguments 예외를 얻고있다. 다음은 NavigatorIOS에서이 이벤트의 코드입니다. 영역에 액세스 할 수있는 경우 확인하고 이미지를 다음과 같이 잘 보인다 저장에서 일부 개체를 갖기 위해

<NavigatorIOS 
    barTintColor="#000000" 
    tintColor="#fff" 
    titleTextColor="#fff" 
    ref={(ref) => this._navigator = ref} 
    style={{flex: 1,backgroundColor: '#fff'}} 
    initialRoute={{ 
     title: 'NOOZOO', 
     component: Home, 
     leftButtonIcon: require('../images/menu.png'), 
     onLeftButtonPress:() => { this._drawer.open() }, 
     rightButtonTitle: 'Logout', 
     onRightButtonPress:() => {alert('Logout'); 
            console.log({name: global.__user.name,token: global.__user.token}); 
            var users = realm.objects('User'); 
            console.log(users.length); 
            console.log(users[0].isValid()); 
            realm.write(()=>{ 
            realm.delete('User', users[0]); 
            }); 
            console.log('deleted'); 
            this._navigate({'title':'Company','routeName':'Home','active':false,'iconUrl': require('../images/check.png'),'newView':false}); 

            console.log(users); 
            }, 
    }}/> 

것은 내가 콘솔에 대한 일부 값을 인쇄하고 있습니다.

Console output when Logout is pressed

나는 영역 메소드 호출 또는 뭔가 잘못된 일을하고 있다면 나도 몰라. 영역에 대한 문서를보고 github에 관한 문제를 읽었지만이 문제를 해결할 수 없었습니다. 어떤 도움을 주시면 감사하겠습니다.

답변

1

호출 삭제는 첫 번째 인수로 객체 유형을 사용하지 않습니다. 이 줄을 다음과 같이 변경해보십시오 :

+0

이 솔루션은 효과가 있었지만 영역이 컬렉션 클래스에 대해 알리지 않고 개체를 기반으로 자동으로 추론하는 방법에 대해 궁금합니다. –

+0

오브젝트가 영역에서 작성되었으므로 오브젝트의 유형을 알 수 있고 적절하게 삭제할 수 있습니다. 귀하의 답변에서 – Ari

+0

, 우리는 명시 적으로 개체 유형을 언급하지 않습니다 '사용자'입니다. –