React Native应用中的奇怪ReferenceError

时间:2018-08-26 17:17:07

标签: reactjs sqlite react-native

我正在构建我的第一个本机应用程序。我正在从SQLite数据库的ListView中加载数据。无论我做什么,我都会不断收到“ ReferenceError:未定义ApartData”

the error

以下是我的代码:

import React from 'react'
import { StyleSheet, Text, View, Image, TouchableOpacity, ListView } from 'react-native'
import { Images } from '../../Themes'

var SQLite = require('react-native-sqlite-storage')
var db = SQLite.openDatabase({name: 'vhodove.db', createFromLocation: '~db.sqlite3'})

export default class Screen1 extends React.Component {
  constructor(props) {
    super(props)
    this.state = {
      apartData: "",
    };

    const ds = new ListView.DataSource({ rowHasChanged: (r1, r2) => r1 !== r2 });
    db.transaction((tx) => {
      tx.executeSql('SELECT title FROM entrances_entrance INNER JOIN tasks_schedule WHERE assignee_id=1', (tx, results) => {
          var len = results.rows.length;
          if(len > 0) {
            var row = results.rows.item(0);
            this.setState({apartData: row.apartData});
          }
        });
    });

    this.state = {
      dataSource: ds.cloneWithRows(apartData),
      isApart: true, isHolder: false
    };
  }

  ListViewItemSeparatorLine = () => {
    return (
      <View
        style={{
          height: .5,
          width: "100%",
          backgroundColor: "#000",
        }}
      />
    );
  }

还有,有没有更好的方法来检索数据?

提前谢谢

1 个答案:

答案 0 :(得分:0)

使用ds.cloneWithRows(this.state.apartData)

所以改变这个:

 this.state = {
      dataSource: ds.cloneWithRows(apartData),
      isApart: true, isHolder: false
    };

至:

 this.state = {
          dataSource: ds.cloneWithRows(this.state.apartData),
          isApart: true, isHolder: false
        };