无法在NavigatorIOS上右键单击动作删除领域对象

时间:2016-06-13 08:20:58

标签: ios react-native realm data-persistence

我正在尝试在react-native应用中添加单点登录功能。我正在使用领域进行数据持久化。登录过程正常工作,并在用户第一时间登录时存储数据。但是当我点击导航器右上角的注销按钮时,我想从本地存储中删除用户对象。

home screen

当我尝试在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);
                                  },
    }}/>

我正在向控制台打印一些值,以便验证域是否可访问并且存储中有一些对象,这看起来很好,如下图所示。

Console output when Logout is pressed

我不知道我是否在使用领域方法调用或其他方面做错了。我已经看过领域的文档,并且还在github上阅读了有关它的问题但是无法解决这个问题。任何帮助,将不胜感激。

1 个答案:

答案 0 :(得分:1)

call do delete不会将对象类型作为其第一个参数。尝试将该行更改为:

realm.delete(users[0]);