0

我正在尝试在 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 上阅读了有关它的问题,但无法解决此问题。任何帮助,将不胜感激。

4

1 回答 1

1

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

realm.delete(users[0]);
于 2016-06-14T00:32:18.127 回答