Obtenir cet avertissement dans la console lorsque l'application React Native est créée initialement. Quelqu'un peut-il m'aider avec la raison pour laquelle je reçois cela?
Voici les spécifications
react-native-cli: 2.0.1
natif de réaction: 0,62,0
Nœud: v12.9.1
5 Réponses :
Il existe généralement deux catégories d'avertissement de cycle: un de notre propre base de code, et un autre des packages node_modules tels que react-navigation-fluid-transitions. Dans ce cas, je pense que c'est du papier natif de réaction.
Nous pourrions à peine faire quoi que ce soit à propos du cycle require dans node_modules à moins que les auteurs du paquet ne le corrigent.
Mais vous souhaitez toujours conserver le paquet et ignorer l'avertissement:
import { YellowBox } from 'react-native' YellowBox.ignoreWarnings([ 'Require cycle:' ])
Même si j'utilise ce que vous avez suggéré, l'avertissement n'est pas affiché dans l'application mais dans l'enregistreur
YellowBox est obsolète, utilisez LogBox:
import { LogBox } from 'react-native'; LogBox.ignoreLogs([ 'Require cycle:' ])
malheureusement, l'avertissement "Les cycles requis sont autorisés" est toujours affiché dans les journaux
Vous pouvez accéder à chaque chemin et supprimer le cycle.
Par exemple, dans node_modules\react-native-paper\src\components\Checkbox\Checkbox.tsx
, supprimez la référence de CheckboxItem
.
Cependant, je ne sais pas quel en est l’impact.
Si plusieurs fournisseurs encapsulent votre application, assurez-vous que votre Provider
importé de react-native-paper
est bien au-dessus de la hiérarchie (il existe des exceptions comme le fournisseur de Redux).
J'avais plusieurs fournisseurs et je l'avais entre d'autres fournisseurs, ce qui, je pense, a créé des importations cycliques. Correction du problème lorsque je le déplaçais au-dessus de l'arborescence, juste en dessous du fournisseur de redux ().
import React from 'react'; import { StatusBar } from 'react-native'; import { Provider } from 'react-redux'; import { Provider as PaperProvider} from 'react-native-paper'; import { SafeAreaProvider } from 'react-native-safe-area-context'; import { store } from './your/reduxStore'; import { someTheme } from './your/apptheme'; const App = () => ( <Provider store={store}> {/* Make sure react-native-paper provider is high up the tree */} <PaperProvider theme={muiTheme}> <SafeAreaProvider> <StatusBar translucent /> {/* Your other App Stuff Here */} </SafeAreaProvider> </PaperProvider> </Provider> ); export default App;
Je l'ai corrigé en important chaque composant séparément comme ceci:
import IconButton from 'react-native-paper/src/components/IconButton';
import Button from 'react-native-paper/src/components/Button';
faites de même partout où vous utilisez qc de react-native-paper