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

时间:2017-04-09 03:59:47

标签: javascript ios json react-native realm

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

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

我挣扎的是onPress函数bookmarkItem。按下按钮的位置我想{j}从json文件到Realm的realm.write个数据。如何在我的领域数据库中存储说{{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函数。任何帮助将不胜感激。 干杯

1 个答案:

答案 0 :(得分:0)

您不必在渲染函数中的JSX元素之外使用{{}}。而不是{{user.login.username}}只需在user.login.username函数中使用realm.create

同样对于图片,您不应该使用uri: user.picture.large只需user.picture.large即可。您可以稍后将该变量用作uri。