我正在尝试在react-native应用中添加单点登录功能。我正在使用领域进行数据持久化。登录过程正常工作,并在用户第一时间登录时存储数据。但是当我点击导航器右上角的注销按钮时,我想从本地存储中删除用户对象。
当我尝试在Invalid arguments
事件中从域存储中删除用户对象时,我收到onRightButtonPress
异常。以下是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);
},
}}/>
我正在向控制台打印一些值,以便验证域是否可访问并且存储中有一些对象,这看起来很好,如下图所示。
我不知道我是否在使用领域方法调用或其他方面做错了。我已经看过领域的文档,并且还在github上阅读了有关它的问题但是无法解决这个问题。任何帮助,将不胜感激。
答案 0 :(得分:1)
call do delete不会将对象类型作为其第一个参数。尝试将该行更改为:
realm.delete(users[0]);