繁体   English   中英

React Native应用程序-使用Realm存储数据

[英]React Native app - Storing data using Realm

使用React Native仍在学习曲线上。 我已经阅读了Realm文档和其他论坛,但似乎无法找到将数据写入Realm的看似简单的概念的答案。 例如;

在我的代码中,我从本地json文件接收数据(用户列表),并且能够访问和显示其信息。

我苦苦挣扎的是onPress函数bookmarkItem 当按下按钮我想realm.write从JSON文件境界某些数据。 如何在我的领域数据库中存储说{{user.login.username}}的值??? 下面是有问题的代码;

import { users } from '../config/data';
import Realm from 'realm'

 class Article {}
  Article.schema = {
  name: 'Article',
  properties: {
    key:  'data',
    image: 'data',
    title: 'data',
  }
};

let realm = new Realm({schema: [Article]});

class Feed extends Component {
  onLearnMore = (user) => {
    this.props.navigation.navigate('Details', { ...user });
  };

  bookmarkItem = (user) => {
   realm.write(() => {
    realm.create('Article', {
     key: {{user.login.username}},
     image: {{ uri: user.picture.large}},
     title: {{user.name.first}},
   });
  });
 };


render() {
    return (
      <ScrollView>
          {users.map((user) => (
              <Card key={user.login.username}>
                  <CardItem header>
                      <Right>
                        <Button onPress={() => this.bookmarkItem(user)}>
                            <Icon name="bookmark" />
                        </Button>
                      </Right>
                  </CardItem>
                  <CardItem cardBody onPress={() => this.onLearnMore(user)}>
                      <Image source={{ uri: user.picture.large }}/>
                  </CardItem>
                   <CardItem content>
                              <Text>{user.name.first} {user.name.last}</Text>
                   </CardItem>
             </Card>
           ))}
     </ScrollView>
    );
  }

显然,我对使用模式数据类型以及如何以及在何处正确执行realm.write函数不了解。 任何帮助将不胜感激。 干杯

您不必在呈现函数中的JSX元素外使用{{}} 代替{{user.login.username}}只需在realm.create函数中使用user.login.username

同样对于图像,您不应该使用uri: user.picture.large仅需要user.picture.large就足够了。 您以后可以将该变量用作uri。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM