1
resposta

SALVAR NOTA N FUNCIONA

Eu estou seguindo o que o instrutor está ensinando, mas na hora que chega pra cadastrar a Nota, ele simplesmente não salva e nem gera um Log.

Bloco de códigos do Notas Editor, que no meu se chama Cadastro, no lugar de salvar Notas eu mudei tudo para salvar Carro.

import { Picker } from '@react-native-picker/picker';
import React, { useState } from "react"
import { Modal, View, Text, TextInput, StyleSheet, TouchableOpacity, ScrollView } from 'react-native';
import { adicionaCarro } from '../../../servicos/Carros';

export default function Itens({ mostraCarros }) {

    const [titulo, setTitulo] = useState("")
    const [preco, setPreco] = useState("")
    const [categoria, setCategoria] = useState("Carro")
    const [descricao, setDescricao] = useState("")
    const [modalVisivel, setModalVisivel] = useState(false)

    async function salvaCarro() {
        const umCarro = {
            titulo: titulo,
            preco: preco,
            categoria: categoria,
            descricao: descricao,
        }
        await adicionaCarro(umCarro)
        mostraCarros()
    }
import React from "react";
import { StyleSheet, Text, View } from "react-native";

export function Car({ item }) {
    const categorias = { Carro: "#FF924F", Moto: "#00911F" }
    const estilos = styleFunction(categorias[item.categoria])

    return (
        <View style={estilos.cartao}>
            <Text style={estilos.titulo}>{item.titulo}</Text>
            <Text style={estilos.preco}>{item.preco}</Text>
            <Text style={estilos.categoria}>{item.categoria}</Text>
            <Text style={estilos.texto} numberOfLines={5}>{item.descricao}</Text>
        </View>
    )
}

Um problema que eu vi, é que na tela do Notas.js na parte de BuscaNotas, não aparece a opção rows._array.

1 resposta

Fala, Isaias! Tudo certo ?

Podemos começar verificando se as importações estão todas corretas, por exemplo se a função que vai fazer a criação no banco de dados está sendo importada corretamente no arquivo ´NotaEditor.js´. Poderia verificar isso ? Só para termos certeza.

Um outro local que pode estar causando esse erro é a função que vai fazer a criação do objeto no banco de dados. No caso do curso é a função adicionaNota, poderia mandar como você fez essa função ? Enquanto isso, vou deixar como essa função ficou no final, assim você pode comparar se tem algo diferente.

export async function adicionaNota(nota){
    return new Promise((resolve) => {
        db.transaction((transaction) => {
            transaction.executeSql("INSERT INTO Notas (titulo, categoria, texto) VALUES (?,?,?);", [nota.titulo,nota.categoria,
            nota.texto], ()=>{
                // console.log("Nota adicionada com sucesso");
                resolve("Nota adicionada com sucesso");

            })
        })
    })

}

Além disso, podemos colocar uma variável para receber a resposta da função que vai criar a Nota, e verificar de fato se ela está sendo criada caso retorne a mensagem “Nota adicionada com sucesso”, da seguinte forma:

    const resposta = await adicionaNota(umaNota);
    console.log("resposta :" + resposta);

Então, caso apareça no terminal que a nota foi adicionada, quer dizer que está criando no banco de dados o elemento, ele só não está sendo mostrado na tela, logo, teríamos que verificar outros trechos do código.

Fico no aguardo e qualquer coisa é só falar

Abraço e bons estudos!