Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/81.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android React本机Sqlite存储:未执行db.transaction()函数_Android_Sql_Reactjs_Sqlite_React Native - Fatal编程技术网

Android React本机Sqlite存储:未执行db.transaction()函数

Android React本机Sqlite存储:未执行db.transaction()函数,android,sql,reactjs,sqlite,react-native,Android,Sql,Reactjs,Sqlite,React Native,我正在使用React-native sqlite存储(React-native CLI)。问题是,当我查询sqlite时,getmysqliData没有执行tx.executeSql函数。我不知道为什么 整个代码如下: 关于代码: 状态:数据:[--数据--]。。。。是暂时的,必须在getMysqliData函数中用sqlite元素替换 这是两个数组,因为我使用它们作为实时过滤器(顺便说一句,它与sqlite无关) const db=SQLite.openDatabase({name:“ges

我正在使用React-native sqlite存储(React-native CLI)。问题是,当我查询sqlite时,getmysqliData没有执行tx.executeSql函数。我不知道为什么

整个代码如下:

关于代码:

状态:数据:[--数据--]。。。。是暂时的,必须在getMysqliData函数中用sqlite元素替换

这是两个数组,因为我使用它们作为实时过滤器(顺便说一句,它与sqlite无关)

const db=SQLite.openDatabase({name:“geslub”,createFromLocation:“~databases/geslub.db”});
类TablaActProgramadas扩展组件{
建造师(道具){
超级(道具);
这个州={
值:“”,
孤岛加载:是的,
数据:[
{'Faena':'aDDLB','Planta':'higher Titan','Linea':'Kmotasú','Equipo':'Caex','component':'N/A'}
],
arrayholder:[
{'Faena':'aDDLB','Planta':'higher Titan','Linea':'Kmotasú','Equipo':'Caex','component':'N/A'}
],
};
};
异步组件didmount(){
等待这个消息;
log('TERMINO:componentdidmount')
}
getMysqliData(){
const sql='SELECT*FROM actividades_programmadas';
数据库事务((tx)=>{
//TX.EXECUTESQL未执行!!
tx.executeSql(sql,[],(tx,results)=>{
if(results.rows.\u array.length>0){
这是我的国家({
数据:results.rows\u数组,
arrayholder:results.rows\u数组,
孤岛加载:false
})
}否则{
Alert.Alert('ERROR en la carga de datos')
}
});
});
}
组件将卸载(){
这是closeDatabase();
}
closeDatabase=()=>{
中频(db){
db.close();
}否则{
log(“数据库号estaba abierta”);
}
}
renderHeader=()=>{
返回(
this.searchFilterFunction(text)}
自动更正={false}
value={this.state.value}
/>
);
};
searchFilterFunction=文本=>{
这是我的国家({
值:文本,
});
const newData=this.state.arrayholder.filter(项=>{
const itemData=`${item.Faena.toUpperCase()}${item.Planta.toUpperCase()}${item.Linea.toUpperCase()}`;
const textData=text.toUpperCase();
返回itemData.indexOf(textData)>-1;
});
这是我的国家({
数据:新数据,
});
};
render(){
if(此.state.isLoading)
返回(
描述达托斯。。。
)
其他的
返回(
index.toString()}
renderItem={({item})=>(
this.props.navigation.navigate('RealizationRactProgramAdas'{
faena:`${item.faena}`,//ENVIAR ID DE LA ACTIVIDAD A REALIZAR
otherParam:“这里有你想要的任何东西”,
})}>
)}
ItemSeparatorComponent={this.renderSeparator}
ListHeaderComponent={this.renderHeader()}
/>
);
}
}

我也有同样的问题。出现这种情况是因为openDasaBase正在创建一个新的数据库文件,而不是使用导入的文件。 对于android,我需要将de sqlite文件放在android/src/main/assets/www/test.db中

并使用此配置打开:

var db = openDatabase({name: 'test.db', createFromLocation: 1}, () => {
  console.log("Database OPENED");
}, (err) => {
  console.log("SQL Error: " + err);
});
这在文档中有更好的描述

var db = openDatabase({name: 'test.db', createFromLocation: 1}, () => {
  console.log("Database OPENED");
}, (err) => {
  console.log("SQL Error: " + err);
});