1
resposta

Utilização json parser erro ao alterar e salvar os dados com o put e post

Olá, eu estou seguindo, mas me deparei com um erro no código de atualização de uma data especifica, o dia 18 não grava e já limpei o db.json e mesmo assim deu erro, tem algumas diferenças entre o código do curso e o que é ensina durante as aulas.

Esse erro aconteceu depois que eu deletei o item e tento criar novamente.

Eu estou fazendo testes e parece que o emulador desconectou, mas mesmo assim ele faz a adição no arquivo db.json, fiquei pensando, isso é uma falha, tem como evitar?

https://github.com/giseletoledo/flutter_webapi_second_course

Ele lista 10 dias e eu vi o padrão que é o primeiro item da lista, grava no db.json, mas não atualiza na tela, todas as outras datas inclusive a última que é dia 29, aparece, agora o primeiro item é o dia 19 e não atualiza na tela, qual é o problema?

Gostaria de saber como previnir certos erros que estão sendo causados por cadastro errado, algo quando o servidor cai também.

1 resposta

Como conversado pelo Discord, nós achamos o problema, que está no código fonte do curso!

O erro está no arquivo home_screen_list.dart dentro da função database.forEach

//Preenche os espaços que possuem entradas no banco
  database.forEach(
    (key, value) {
      if (value.createdAt
          .isAfter(currentDay.subtract(Duration(days: windowPage))))
      {
        int difference = value.createdAt
            .difference(currentDay.subtract(Duration(days: windowPage)))
            .inDays
            .abs();

        list[difference] = JournalCard(
          showedDate: list[difference].showedDate,
          journal: value,
          refreshFunction: refreshFunction,
        );
      }
    },
  );
  return list;
}

Na linha

.isAfter(currentDay.subtract(Duration(days: windowPage))))

devemos fazer uma soma do windowPage com +1 para que o calendário alinhe-se com a Lista do banco de dados.

.isAfter(currentDay.subtract(Duration(days: windowPage + 1))))

Esse erro vai ser corrigido no curso, mais uma vez obrigado pela paciência!