无法使用文本输入值将数据插入数据库

Unable to insert data to database using textinput value

我想插入从 textinput 检索的数据并将其存储到数据库中 table。

我尝试将文本输入值作为 this.state.text1 传递,但它没有插入,也没有执行任何操作

sync (){
   console.log('inside sync function');
  const { value1 } = this.state.text1;
    console.log('value1 is' +this.state.text1 );
   db.transaction(function(txn) {
    txn.executeSql(
      "INSERT INTO " +
        localDB.tableName.tblLogin +
        " (text1,text2) VALUES (:text1,:text2)",
      [
         +this.state.text1,
        "native3"
      ]
    );
  });
  console.log('insert values success');
  console.log(this.state.text1);
  console.log(this.state.text2);

 }

应将 result:The textinput 值插入到 table 数据库内部

实际 result:No 值被插入 database.It 在查询时在数据库中显示 NULL。

将您的查询更改为

async sync  = () => {

  console.log('inside sync function');
  console.log('text1 is' + this.state.text1 );

  await db.transaction((txn) => {

    txn.executeSql(
        `INSERT INTO ${localDB.tableName.tblLogin}(text1,text2) VALUES (?,?)`,
        [this.state.text1,"native3"], 
        (r) => {console.log("success" , r);},
        (error) => {console.log("error is", error);}
    );

 });

  console.log('insert values success');
  console.log(this.state.text1);

}

尝试使用 setTimeout(() => 将插入延迟 1 秒。 React 的 this.setState 不是即时的。

sync (){
   console.log('inside sync function');
  const { value1 } = this.state.text1;
    console.log('value1 is' +this.state.text1 );

   setTimeout(() => {
       db.transaction(function(txn) {
       txn.executeSql(
         "INSERT INTO " +
           localDB.tableName.tblLogin +
           " (text1,text2) VALUES (:text1,:text2)",
         [
            +this.state.text1,
           "native3"
         ]
        );
       });
   }, 1000);

  console.log('insert values success');
  console.log(this.state.text1);
  console.log(this.state.text2);

 }