【问题标题】:Set state to result of database query将状态设置为数据库查询的结果
【发布时间】:2019-07-29 11:20:07
【问题描述】:

所以我有一个这样的函数来从数据库中获取所有内容:

  retrieve() {
    db.transaction(
      tx => {
       tx.executeSql('select * from my_table', [], (trans, result) => {
        });
      }    
    );
  }

现在我想将我的组件的state 设置为result,但我不确定如何实现这一点。我尝试在 retrieve() 函数的各个点添加以下内容,但我无法取得任何成功。

this.setState({
  cardholders: result
});

【问题讨论】:

  • 数据库事务有可能异步运行吗?如果是这种情况,您必须链接以将 result 设置为 state

标签: javascript react-native expo


【解决方案1】:

你可以试试这个吗?

  retrieve() {
    db.transaction(
      tx => {
       tx.executeSql('select * from my_table', [],  (trans, result) => {
        this.setState({
          cardholders: result
        });
        });
      }    
    );
  }

【讨论】:

    【解决方案2】:

    我是这样想的:

    db.transaction(
      tx => {
       tx.executeSql('select * from MyScannedCards', [], (trans, result) => {
        var len = result.rows.length;
        for (i=0;i<len;i++){
          cardDetails = result.rows._array[i];
          this.setState({ cardholders: this.state.cardholders.concat(cardDetails) })
        }
        });
      }
    );
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-01-02
      • 2019-12-29
      • 2021-02-11
      • 2019-10-28
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多