"मूल डीबगर एक पृष्ठभूमि टैब में है" से छुटकारा पाएं रिएक्ट नेटिव में चेतावनी


86

मैंने एक नई प्रतिक्रिया मूल परियोजना शुरू की है और मुझे निम्नलिखित चेतावनी मिलती रहती है:

रिमोट डिबगर एक बैकग्राउंड टैब में होता है जिससे ऐप्स धीरे-धीरे परफॉर्म कर सकते हैं। टैब को अग्रभूमि करके (या इसे एक अलग विंडो में खोलकर) इसे ठीक करें।

यह थोड़ा कष्टप्रद है इसलिए मुझे पता है कि मैं इससे कैसे छुटकारा पा सकता हूं? मैं Chrome में डीबगर चला रहा हूं और मैंने इसे एक अलग विंडो में स्थानांतरित कर दिया है लेकिन इससे कोई फायदा नहीं हुआ।


इसे पढ़ने वाले अन्य लोगों के लिए, मुझे लगता है कि इन चेतावनियों को नजरअंदाज करने के बजाय आपको एक तेज़ डीबगर की आवश्यकता है। प्रतिक्रिया-मूल-डिबगर का उपयोग करने के लिए @varunvs द्वारा दिए गए उत्तर से चेतावनी दूर हो जाती है और आपके डिवाइस का आउटपुट समय कम हो जाता है
Vineeth Pradhan

3
सही उत्तर ( नीचे ) अब केवल डिबगर पृष्ठ पर "प्राथमिकता बनाए रखें" चेकबॉक्स की जांच करने के लिए है।
ओरोम

जवाबों:


148

अपनी पूरी परियोजना में चेतावनी से छुटकारा पाने के लिए अपनी सबसे बाहरी जावास्क्रिप्ट फ़ाइल में निम्नलिखित जोड़ें (अधिकांश समय जो index.jsरीजनल एनआई के लिए है)

प्रतिक्रिया-मूलक के लिए v0.57+:

import { YellowBox } from 'react-native';
YellowBox.ignoreWarnings(['Remote debugger']);

इसे आधिकारिक प्रतिक्रिया मूल दस्तावेज़ से संदर्भ दें:

https://facebook.github.io/react-native/docs/debugging.html

प्रतिक्रिया-मूलक v0.56 या नीचे:

अपने कोड में निम्नलिखित को जल्दी जोड़ें:

console.ignoredYellowBox = ['Remote debugger'];

उस त्रुटि के लिए आसान, सरल और विशिष्ट। मेरे लिये कार्य करता है। किसी भी पाठ के लिए विकल्प चुन सकते हैं।


मेरे AppRegistry.registerComponent स्टेटमेंट से ठीक पहले इसे जोड़ा गया और इसने काम किया! धन्यवाद
İlter Kağan OCAL

1
मैंने इस कोड को अपने शीर्ष-स्तर पर रखा index.js। एक जादू की तरह काम करता है। if (__DEV__) { console.ignoredYellowBox = ['Remote debugger']; }
माइक एस

@MikeS। मुझे एक चेतावनी मिली [eslint] '__DEV__' is not defined. (no-undef)। क्या आपको भी मिलता है?
3

@anticafe नहीं, मुझे कोई चेतावनी नहीं मिली। इसलिए मुझे यकीन नहीं है कि मुद्दा क्या होगा।
माइक एस।

अरे मैं उपयोग कर रहा हूं YellowBox.ignoreWarnings(['Remote debugger', 'Require cycles']);लेकिन दोनों चेतावनी अभी भी मेरे कंसोल विंडो के अंदर दिखाई दे रही हैं। मैं आरएन के 0.61.4 संस्करण का उपयोग कर रहा हूं। कृपया मदद करें
अर्चना शर्मा

39

यह समाधान मेरे लिए काम कर रहा है

खुली / चाल http: // localhost: 8081 / डिबगर-उई (दूरस्थ डिबगिंग के लिए डिफ़ॉल्ट पथ) अलग विंडो पर

शायद जो मदद कर सके :)


5
बस 37 टैब के अपने सामान्य समूह से टैब को अपनी खिड़की में स्थानांतरित करें। धन्यवाद
जॅकेफॉकर

हाँ, यह काम करता है। लेकिन कोई भी मुझे बता सकता है कि ऐसा क्यों है?
रंजन

सही काम करता है !!!
user3494434

24

आप https://github.com/jhen0409/react-native-debugger पर उपलब्ध रिएक्ट नेटिव डिबगर का उपयोग कर सकते हैं। यह विकास के दौरान रिएक्टिव नेटिव ऐप को डीबग करने के लिए एक स्टैंडअलोन ऐप है।


3
धन्यवाद, मैं निश्चित रूप से इसे आज़माऊंगा, लेकिन यह बिल्कुल नहीं है कि मैं एक उत्तर के रूप में क्या देख रहा हूं क्योंकि यह चेतावनी को हल नहीं करता है। मुझे एक ही कंप्यूटर पर अन्य आरएन ऐप्स पर अजीब तरह से चेतावनी नहीं मिलती है
mxmtsk

1
मेरे पास भी ऐसा ही मुद्दा था लेकिन रिएक्ट नेटिव डिबगर के उपयोग से इसे हल किया गया।
वरुण संवत्

धन्यवाद, मैं इस समाधान के लिए चला गया क्योंकि डिबगर को खुद की खिड़कियों में रखने से मेरे लिए हर समय चेतावनी मिटती नहीं है
mxmtsk

2
चेतावनी को हटाने के लिए सिर्फ एक और उपकरण स्थापित करना सबसे अच्छा समाधान नहीं है, और यह कि अन्य उपकरण की अपनी समस्याएं हैं। सही उत्तर kjonsson के नीचे एक है -console.ignoredYellowBox = ['Remote debugger'];
laurent

1
@ this.lau_ क्या सिर्फ चेतावनी को छिपाना और वास्तविक समस्या को ठीक नहीं करना है? मेरा मानना ​​है कि हम जिस समस्या का समाधान करने की कोशिश कर रहे हैं, वह डिबगिंग के दौरान धीमी ऐप के प्रदर्शन को ठीक करना है। एक चेतावनी को जबरन छिपाने से यह ठीक नहीं होगा।
वरुणवास


6

ऐसा इसलिए है क्योंकि React Native Remote Debugger UI टैब के साथ ब्राउज़र में टैब की संख्या खोली जाती है । मुझे भी इसी मुद्दे का सामना करना पड़ा।

इस चेतावनी संदेश को दूर करने के लिए आप निम्न में से किसी एक विधि का उपयोग कर सकते हैं:

  • एक गुप्त टैब खोलें फिर पता बार पर http: // localhost: 8081 / डिबगर-यूआई पेस्ट करें और ENTER दबाएँ । अंत में एप्लिकेशन को लोड करें (कमांड + आर)

  • ब्राउज़र में सभी टैब बंद करें। केवल 1 टैब को खुला रखें फिर http: // locahost: 8081 / डिबगर-यूआई को हिट करें और फिर ऐप को लोड करें (कमांड + बटन)


6

जैसा कि एक टिप्पणी में @jakeforaker द्वारा उल्लेख किया गया है। आपके ब्राउज़र की मौजूदा विंडो में टैब के बजाय बस एक अलग विंडो में रिमोट डिबगर खोलने से चेतावनी चली गई (आपको हालांकि अपने सिम्युलेटर को फिर से लोड करना होगा)।

जैसा कि चेतावनी दूरस्थ डीबगर को अन्य टैब के समान विंडो में रखने की बात कह रही है

हो सकता है कि ऐप्स धीरे-धीरे प्रदर्शन करें

इसलिए मुझे लगता है कि @kjonsson द्वारा उल्लिखित चेतावनी को दबा देना: - console.ignoredYellowBox = ['Remote debugger'];सबसे अच्छा समाधान नहीं लगता।


5

यह समस्या तब हल हुई जब मैंने सभी खुली हुई क्रोम विंडो बंद कर दी और डीबगिंग को फिर से शुरू किया। मैंने पहले क्रोम विंडो खोली थी, इसलिए 'ऐसा लगता है' कि उनके खुले प्रदर्शन को मार देता है।


5

चूंकि यह मार्च 2017 में प्रतिबद्ध है, इसलिए आप प्राथमिकता प्राथमिकता चेकबॉक्स को सक्षम कर सकते हैं । जब सक्षम किया जाता है, तो यह डिबगर के ब्राउज़र टैब को कम-पावर मोड में प्रवेश करने से रोकने के लिए चुपचाप एक बेस 64-एन्कोडेड .wavफ़ाइल चलाता है, जो वेबसैट प्रदर्शन को प्रभावित कर सकता है। यह आपके द्वारा वर्णित चेतावनी को प्रभावी ढंग से रोक देगा।


4

मुझे लगता है कि स्वीकृत उत्तर अब सटीक नहीं है (कम से कम रिएक्टिव नेटिव v0.57 + के लिए)।

सही कोड अब है:

import { YellowBox } from 'react-native';
YellowBox.ignoreWarnings(['Remote debugger']);

इसे आधिकारिक प्रतिक्रिया मूल दस्तावेज़ से संदर्भ दें:

https://facebook.github.io/react-native/docs/debugging.html


2

मैं मैकबुक पर हूं। मैंने डिबगर विंडो को मुख्य डेस्कटॉप पर लाकर इस मुद्दे को ठीक किया, बजाय इसके कि इसे अलग डेस्कटॉप पर रखा जाए जो यह सोचता है कि "बैकग्राउंड" में है।

यहाँ छवि विवरण दर्ज करें


0

मेरे पास कल भी यही मुद्दा था। Googling ने इस स्टैक ओवरफ्लो पोस्ट को आगे बढ़ाया । प्रतिक्रिया में (एड्रियनप्रोड द्वारा), उन्होंने सुझाव दिया:

Chrome debugger in it's own window fixes. But annoying problem

यह संभावना है कि आपका रिएक्ट नेटिव डीबगर अपने क्रोम ब्राउज़र विंडो में नहीं बल्कि क्रोम ब्राउज़र टैब में हो। एड्रियनप्रोड सुझाव के अनुसार इसे अपनी खिड़की के रूप में खींचकर, मेरे लिए यह तय किया।


0

(बहुत कष्टप्रद) त्रुटि संदेश द्वारा नियंत्रित किया जाता है debuggerWorker.js, जो दुख की बात है कि संदेश को बंद करने के लिए कोई कॉन्फ़िगरेशन विकल्प शामिल नहीं है। इसलिए समय के लिए कोई तरीका नहीं है कि आप संदेश को अक्षम करने के लिए अपने एप्लिकेशन को कॉन्फ़िगर कर सकें।

संबंधित कोड नीचे उल्लिखित है ( मूल लाइसेंस लागू होता है):

var visibilityState;
var showVisibilityWarning = (function() {
  var hasWarned = false;
  return function() {
    // Wait until `YellowBox` gets initialized before displaying the warning.
    if (hasWarned || console.warn.toString().includes('[native code]')) {
      return;
    }
    hasWarned = true;
    console.warn(
      'Remote debugger is in a background tab which may cause apps to ' +
      'perform slowly. Fix this by foregrounding the tab (or opening it in ' +
      'a separate window).'
    );
  };
})();

जैसा कि आप देखते हैं, कोई कॉन्फ़िगरेशन विकल्प उपयोग नहीं किया जाता है, पूरी चीज़ स्थानीय रूप से बंद हो जाती है (आगे के विवरण के लिए उपरोक्त रेपो लिंक देखें)।


0

मैं भी लगभग एक सप्ताह पहले इसी मुद्दे का सामना कर चुका हूं और आखिरकार मुझे ऐसा समाधान मिल गया है जो मेरे लिए काम करता है

इसे रिएक्टोट्रॉन कहा जाता है, आप इसे यहां पा सकते हैं - https://github.com/reactotron/reactotron और आप इसका उपयोग कर सकते हैं:
* अपने आवेदन की स्थिति देखें
* एपीआई अनुरोध और प्रतिक्रियाएं दिखाएं
* त्वरित प्रदर्शन मानदंड प्रदर्शन करें
* अपने भागों के लिए सदस्यता लें एप्लीकेशन स्टेट
* कंसोल के समान संदेश प्रदर्शित करें। ब्लॉग
* स्रोत-मैप किए गए स्टैक के साथ वैश्विक त्रुटियों को ट्रैक करें जिसमें सागा स्टैक के निशान शामिल हैं!
* सरकार द्वारा संचालित माइंड कंट्रोल प्रयोग जैसी कार्रवाई
करें। अपने ऐप की स्थिति को गर्म करें
* अपने साग को ट्रैक करें

मुझे उम्मीद है कि मेरी पोस्ट उपयोगी थी और आप कभी भी इस थकाऊ चेतावनी का सामना नहीं करेंगे।

सौभाग्य


0

में इसका उपयोग करता हूँ index.js

if (__DEV__) {
  console.ignoredYellowBox = [
    'Remote debugger',
    'Warning: isMounted… is deprecated',
    'Module RCTImageLoader'
  ];
}

मैंने भी आयात कियाimport { AppRegistry, YellowBox } from 'react-native';
माइक एस।

हालाँकि मैंने अभी एक नए ऐप में इसे रिटायर किया है और यह काम नहीं कर रहा है। आश्चर्य है कि अगर कुछ में बदल गया 0.57.4?
माइक एस।

0

मैंने " http: // localhost: 8081 / debugger-ui / " विंडो को छोटा कर दिया था। बस इसे खोलना (न्यूनतम करना), और ऐप को फिर से लोड करने से चेतावनी को हटा दिया गया।


0

ऐसी संभावना हो सकती है कि एक अन्य डिबगर पहले से ही पैकर से जुड़ा हुआ है। इसलिए अपने टर्मिनल और डीबगर Google क्रोम को बंद करें।

यदि आप विज़ुअल स्टूडियो के पैकेज मैनर का उपयोग कर रहे हैं तो मैक / अन्य ओएस टर्मिनल कमांड द्वारा पैकेज मैनेजर शुरू न करें।

इसलिए सभी टर्मिनल बंद करें और पैकेज मैनर और Google क्रोम डीबगर पर जाना बंद करें। फिर से प्रक्रिया शुरू करें।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.