Błąd: OSTRZEŻENIE: Nie można wykonać aktualizacji stanu reagowania na nieznany komponent. To jest no-op, ale wskazuje wyciek pamięci w aplikacji. Aby naprawić, anulować wszystkie subskrypcje i zadania asynchroniczne w% s.% S, metoda komponentwillunmount,
W dostawie (w app.js: 51)
W aplikacji (stworzony przez Exporot)
W RCTVIEW (w Nativeppearance.tsx: 4)
W FallbackApparcesProvider (w SRC / index.tsx: 70)
W wyglądzieProvider (stworzony przez Exporot)

Pobieranie danych z bazy danych jest dla mnie nowy, więc nie wiem o tym wiele. Czy ktoś może mi pomóc w rozwiązaniu?

To jest to, co mam teraz:

componentDidMount() {
fetch('http://217.103.142.212:3000/meldingen')
  .then(response => response.json())
  .then(meldingen => console.log(meldingen))

  .then(console.log(meldingen))
  .catch((error) => console.error(error))
  .finally(() => {
    this.setState({ isLoading: false });
  });

}

render() {
const { data, isLoading } = this.state;
return (
  <View>
    <View>
      {isLoading ? <ActivityIndicator /> : (
        <FlatList
          data={data}
          keyExtractor={({ id }, index) => id}
          renderItem={({ item }) => (
            <Text>{item.Soort_Stank}, {item.Intensiteit}</Text>
          )}
        />
      )}

    </View>

  </View>
);
0
Lukas Martens 12 październik 2020, 11:06

1 odpowiedź

Najlepsza odpowiedź

Zajmujmy się problemem w tym czasie:

  • Aktualizacja stanu. Problem z tym, że masz następujący wiersz .then(meldingen => console.log(meldingen)) jest to, że nie zwróci danych. Prawdopodobnie chcesz czegoś takiego:
  .then((meldingen) => {
    console.log(meldingen);
    // Return the values, so that you can chain the `.then` statements
    return meldingen;
  })

Twoja kolejna linia jest również wadliwa, .then(console.log(meldingen)) przechodzi undefined do then.

  • Ostrzeżenie o aktualizacji nieznowego składnika: Oznacza to tylko, że komponent został zniszczony do czasu rozwiązania żądania. Obietnica nie jest przekierowana, więc najlepsza rzecz, jaką możesz zrobić, to przechowywać na komponencie (nie w stanie!) Wether jest zamontowany, czy nie:
constructor() {
  super();
  this.mounted = false;
}

componentDidMount() {

  this.mounted = true;
  // The original fetch
  fetch('http://217.103.142.212:3000/meldingen')
    .then(response => response.json())
    .catch((error) => console.error(error))
    .finally(() => {
      if (this.mounted) {
        this.setState({ isLoading: false });
      }
    });
}

componentWillUnmount() {
  this.mounted = false;
}

0
fodma1 12 październik 2020, 09:21