Korzystam z interfejsu użytkownika materiału SwipeableViews korzystającego z pakietu ReactSwipableView, ten błąd pojawia się na konsoli
reag-dom.development.js: 12466 Ostrzeżenie: zmieniono nazwę componentWillReceiveProps i nie jest zalecane do użycia. Zobacz szczegóły.
- Przenieś kod pobierania danych lub efekty uboczne do componentDidUpdate.
- Jeśli aktualizujesz stan za każdym razem, gdy zmieniają się rekwizyty, zmodyfikuj kod, aby użyć technik zapamiętywania lub przenieś go do statycznego getDerivedStateFromProps. Dowiedz się więcej na:
- Zmień nazwę componentWillReceiveProps na UNSAFE_componentWillReceiveProps, aby ukryć to ostrzeżenie w trybie innym niż ścisły. W React 17.x działa tylko nazwa UNSAFE_. Aby zmienić nazwę wszystkich przestarzałych cykli życia na ich nowe nazwy, możesz uruchomić
npx react-codemod rename-unsafe-lifecycles
w folderze źródłowym projektu.Zaktualizuj następujące składniki: ReactSwipableView
czy jest jakiś sposób, aby pozbyć się tego błędu, próbowałem UNSAFE_componentWillReceiveProps, ale nic się nie zmienia
componentWillReceiveProps
w swoim składniku, czy pochodzi on z twojego pakietu?Odpowiedzi:
Wygląda na to, że zostało to już zgłoszone opiekunom.
Teraz, jako użytkownik oprogramowania typu open source, możesz:
componentWillReceiveProps
repoOstatecznie nie jest to błąd związany z twoim oprogramowaniem, ale zależności, na których się opiera. Naprawdę to nie jest twoja odpowiedzialność. Jeśli Twoja aplikacja działa, będzie dobrze. Ostrzeżenia z
react-dom.development.js
nie pojawią się w produkcji.źródło
Użyj
getDerivedStateFromProps
zamiastcomponentWillReceiveProps
Na przykład:
Przed:
Po:
https://reactjs.org/blog/2018/03/27/update-on-async-rendering.html
źródło
Miałem problemy ze znalezieniem gdzie w moim kodzie wywoływano składnikWillReceiveProps. Zauważyłem w ostrzeżeniu, że wspomina o konkretnym komponencie, „Drawer”, który był częścią używanej przez nas biblioteki ant-d. Po aktualizacji ant-d do najnowszej wersji ostrzeżenie zniknęło.
źródło
Jest to częsty błąd występujący w reakcji rodzimego projektu, więc można go rozwiązać, wykonując następujące czynności:
- następnie wpisz następujący kod w pliku .js:
źródło