Друзья. подскажите почему не обнавляется вью со списком элементов после добавления записи в базу sqlite
class App extends Component {
constructor(props) {
super(props)
this.state = {
name: '',
symbols: []
}
}
componentDidMount() {
//console.log("Component mounted7")
this.initDB()
this.getSymbols()
}
initDB = () => {
db.transaction((txn) => {
txn.executeSql("SELECT name FROM sqlite_master WHERE type='table' AND name='table_symbol'", [],
(tx, res) => {
console.log('items: ', res.rows.length)
if(res.rows.length == 0) {
txn.executeSql('DROP TABLE IF EXISTS table_symbol', [])
txn.executeSql(
'CREATE TABLE IF NOT EXISTS table_symbol(symbol_id INTEGER PRIMARY KEY AUTOINCREMENT, name VARCHAR(20))',
[]
)
}
})
})
}
addSymbol = () => {
const {name} = this.state
if(name) {
db.transaction((txn) => {
txn.executeSql('INSERT INTO table_symbol (name) VALUES (?)', [name],
(tx,results) => {
console.log('Resuits: ', results.rowsAffected)
if(results.rowsAffected > 0) {
Vibration.vibrate(200)
// Alert.alert('Success', 'Вы зарегистрированы!')
}
})
})
}
}
getSymbols = () => {
const temp = []
db.transaction((tx) => {
tx.executeSql('SELECT * FROM table_symbol', [],
(tx,results) => {
for(let i = 0; i < results.rows.length; i++){
temp.push(results.rows.item(i))
}
this.setState({symbols: temp}, () => {
console.log(temp)
})
})
})
}
add = () => {
console.log("Adds")
}
render(){
return(
<View>
<Text>Pronuncatioun</Text>
<View>
<TextInput placeholder="Symbol" onChangeText={(name) => this.setState({name})} />
<Button title="Add Symbol" onPress={() => this.addSymbol()} />
</View>
<View>
{
this.state.symbols.map(item => (
<Text>{
item.name}</Text>
))}
</View>
</View>
)
}
}