首页 > 解决方案 > PouchDB 获取数组值

问题描述

我对带有数组值的 PouchDB 有疑问。

在我的数据库文件中,我有:

"ExercisesData": [
        {
          "Id": "01",
          "Reps": "10",
          "StartDate": "2019-06-20",
          "EndDate": "2019-06-21",
          "Notes": ".........."
        },
        {
          "Id": "02",
          "Reps": "1",
          "Notes": "........"
        },
        {
          "Id": "03",
          "Reps": "150",
          "Notes": "........"
        }
  ]

我需要打印这些值,并让用户选择其中一个值(Id)。

我试图以这种方式从数据库中获取这些值:

findUtente(cf) {
        let params = {};
        params = {
          "Person.FiscalCode": cf
        };
        global.utente.db.localdb().find({
          selector: {params},
        })
          .then(response => {
              let utente = response.docs[0];
              console.log(utente);
              this.setState({ Id: utente.ExercisesData.Id })
              console.log("utente.ExercisesData.Id: " + utente.ExercisesData.Id)

            })
            .catch(function(err) {
              console.log(JSON.stringify(err));
            });
          } 
          render() {
            console.log("this.state.Id: " + this.state.Id)
            return(
                <View>
                    <Text>{this.state.Id}</Text>
                </View>
            );
          }

但是这段代码被抓住了,给我返回错误:{}问题应该是我试图以错误的方式获取元素。也许我应该使用 .Map 参数?如何恢复这些值并将它们打印在页面中?谢谢你。

标签: javascriptreact-nativepouchdb

解决方案


我以这种方式解决了:

 const exercises = this.state.Exercises.map(exercise => {
      return (
        <View>
          <Text style={{ fontSize: 15 }}> {exercise.Id}</Text>
          <Text style={{ fontSize: 15 }}> {exercise.Reps}</Text>
          <Text style={{ fontSize: 15 }}> {exercise.Notes}</Text>

推荐阅读