কীভাবে আপনি প্রতিক্রিয়া নেটিভ আইওএস সিমুলেটারে লুকিয়ে রাখবেন?


114

আমি সবেমাত্র আমার প্রতিক্রিয়াশীল নেটিভকে আপগ্রেড করেছি এবং এখন আইওএস সিমুলেটরটিতে অনেকগুলি সতর্কতা রয়েছে। সেগুলি ঠিক করার পাশাপাশি, আমি কীভাবে এই সতর্কতাগুলি লুকিয়ে রাখব যাতে নীচে কী রয়েছে তা আমি দেখতে পারি?

উত্তর:


218

দেশীয় প্রতিক্রিয়া অনুযায়ী নথিপত্র , আপনি সেট করে সতর্কতা বার্তা লুকিয়ে রাখতে পারেন disableYellowBoxকরতে trueভালো:

console.disableYellowBox = true;

হালনাগাদ

~~ কনসোল.ডিজিবলয়েবক্স ~~ সরানো হয়েছে এবং এখন আপনি ব্যবহার করতে পারেন:

import { LogBox } from 'react-native';
LogBox.ignoreLogs(['Warning: ...']); // Ignore log notification by message
LogBox.ignoreAllLogs();//Ignore all log notifications

সমস্ত লগ বিজ্ঞপ্তি উপেক্ষা


4
এটি আমার পক্ষে কাজ করেছে, তবে অন্যান্য উত্তরগুলি যা কনসোল.ইনার্ডইয়েলোবক্স বলেছে = [...];
sdfsdf

7
ধন্যবাদ! এটি নির্বাচিত উত্তর হওয়া উচিত।
শ্রীজিথ রামকৃষ্ণন

4
দুঃখিত, তবে আপনি কনসোলটি কোথায় যুক্ত করবেন? ডিভাইসইয়েলোবক্স = সত্য?
মিশেল আরতেটা

4
@ মাইক, আপনার স্ক্রিপ্টের যে কোনও জায়গা, আপনি যখন হলুদ বাক্সটি অক্ষম করতে চান।
মুসাবি 7

4
এটি রাখার জন্য একটি ভাল জায়গা হ'ল রুটকন্টেইনার উপাদানটির নির্মাতাকে!
ফার্নান্দো ভিইরা

112

কিছু নির্দিষ্ট সতর্কতাগুলি নির্বাচন করে আড়াল করার একটি আরও ভাল উপায় (যা সর্বশেষতম এবং সর্বশ্রেষ্ঠ আরএন সংস্করণে আপগ্রেড হওয়ার পরে অনির্দিষ্টকালের জন্য প্রদর্শিত হবে) আপনার প্রকল্পের একটি সাধারণ জেএস ফাইলে কনসোল.গাইনরেডইলোবক্স সেট করা । উদাহরণস্বরূপ, আমার প্রকল্পটি আজ আরএন 0.25.1 এ আপগ্রেড করার পরে আমি অনেক কিছু দেখছিলাম ...

সতর্কতা: ReactNative.createElement হ্রাস করা হয়েছে ...

আমি এখনও প্রতিক্রিয়া-নেটিভের সহায়ক সতর্কতা এবং ত্রুটি বার্তাগুলি দেখতে সক্ষম হতে চাই, তবে আমি এই বিশেষ সতর্কতাটি স্কোয়াশ করতে চাই কারণ এটি একটি বাহ্যিক এনপিএম লাইব্রেরি থেকে এসেছে যা এখনও আরএন 0.25 এর ব্রেকিং পরিবর্তনগুলিকে অন্তর্ভুক্ত করে নি। সুতরাং আমার অ্যাপ.জেজেসে আমি এই লাইনটি যুক্ত করছি ...

// RN >= 0.63
import { LogBox } from 'react-native';

LogBox.ignoreLogs(['Warning: ...']);

// RN >= 0.52
import {YellowBox} from 'react-native';

YellowBox.ignoreWarnings(['Warning: ReactNative.createElement']);

// RN < 0.52
console.ignoredYellowBox = ['Warning: ReactNative.createElement'];

এইভাবে আমি এখনও আমার ত্রুটিযুক্ত পরিবেশের জন্য অন্যান্য ত্রুটিগুলি এবং সতর্কতা সহায়ক পেয়েছি তবে আমি আর সেই বিশেষটিকে আর দেখতে পাচ্ছি না।


আমার জন্য সঠিক সমাধান, যদিও আমার একই "ReactNative.createElement অবমূল্যায়ন করা হয়েছে" সতর্কতা ছিল।
জেডি অ্যাঙ্গারহোফার

4
এটিকে এড়িয়ে যাওয়ার জন্য আপনার কত ত্রুটি বার্তা লিখতে হবে?
Soorena

এই উত্তরের আপডেট দরকার। ইয়েলোবক্স আর-প্রতিক্রিয়ার অংশ নয়।
হায়দার জেইনেডাইন

এটি উভয়ই রেজিপ্সপ এবং সাবস্ট্রিংগুলিকে সমর্থন করে তবে
টাইপস্ক্রিপ্ট ধরণেরগুলিতে

21

হলুদ বাক্স স্থানটি অক্ষম করতে

console.disableYellowBox = true; 

আপনার আবেদনের যে কোনও জায়গায় সাধারণত রুট ফাইলে তাই এটি আইওএস এবং অ্যান্ড্রয়েড উভয় ক্ষেত্রেই প্রযোজ্য।

উদাহরণ স্বরূপ

export default class App extends React.Component {
     render() {
          console.disableYellowBox = true;
          return (<View></View>);
     }
}

14

add this line in your app main screen.

console.disableYellowBox = সত্য;

উদাহরণস্বরূপ: - index.js ফাইলে

import { AppRegistry } from 'react-native';
import './src/utils';
import App from './App';
import { name as appName } from './app.json';

AppRegistry.registerComponent(appName, () => App);
console.disableYellowBox = true;

11

আপনার index.js ফাইলটিতে নিম্নলিখিত কোড যুক্ত করুন

console.disableYellowBox = সত্য;

    import {AppRegistry} from 'react-native';
    import App from './App';
    import {name as appName} from './app.json';

    console.disableYellowBox = true;



AppRegistry.registerComponent(appName, () => App);

11

আপনার অ্যাপ.জেএসএস ফাইলটিতে যে কোনও উপাদানগুলির জীবনচক্র পদ্ধতির অধীনে উপাদান রয়েছে। ডিপমাউন্টের মতো উপাদান () এর মধ্যে আপনাকে এই দুটি যুক্ত করতে হবে, কোনওটি বাদ দিয়ে কাজ করবে না।

console.ignoredYellowBox = ['Warning: Each', 'Warning: Failed'];
console.disableYellowBox = true;

এটি সত্য নয়, আপনার প্রকল্পে কিছু চলছে। একটি লাইন বলেছে "সতর্কতার এই তালিকাকে উপেক্ষা করুন" (এটি করার সর্বাধিক সুনির্দিষ্ট উপায়), একটি লাইন "সমস্ত সতর্কতাগুলিকে উপেক্ষা করুন" (যা এটি করার সত্যিই ভোঁতা উপায়) বলে। উদাহরণস্বরূপ আমার কাছে কেবল প্রথম লাইন রয়েছে এবং এটি আমার সতর্কতাগুলি পুরোপুরি দমন করে।
মাইক হার্ডি

9

আপনি যদি অ্যাপটি দ্রুত ডেমো করার চেষ্টা করছেন ।

আপনি যদি কোনও নির্দিষ্ট বিল্ডে এগুলি আড়াল করতে চান কারণ আপনি একটি ডেমো বা অন্য কিছু করছেন, আপনি নিজের এক্সকোড স্কিমটিকে এটির রিলিজ তৈরি করতে সম্পাদনা করতে পারেন এবং এই হলুদ সতর্কতাগুলি প্রদর্শিত হবে না। অতিরিক্তভাবে, আপনার অ্যাপ্লিকেশনটি আরও দ্রুত চলবে।

আপনি নিম্নলিখিতটি করে আপনার সিমুলেটর এবং বাস্তব ডিভাইসের জন্য স্কিমটি সম্পাদনা করতে পারেন:

  1. এক্সকোডে প্রকল্পে।
  2. Product > Scheme >Edit Scheme...
  3. Build Configurationথেকে পরিবর্তন Debugকরুন Release

4
গ্রহণযোগ্য উত্তর হওয়া উচিত। ইন Release: কোনও সতর্কতা এবং দ্রুত অ্যাপ্লিকেশন!
cappie013

4
আপনি কোনও ডিবাগ বৈশিষ্ট্য পাবেন নাRelease
ফিল অ্যান্ড্রুজ

4
@ ফিলিআন্ড্রুজ আমি সম্মত! আমি জানি না যে আমি এই সময়টি পোস্ট করেছি যখন তবে পর্যাপ্ত লোক রয়েছে যে এটি দরকারী বলে আমি এটি ছেড়ে চলে যাব। আমি অবশ্যই কারও কাছে অ্যাপটি ডেমো করার চেষ্টা করেছি এবং হলুদ সতর্কতা থেকে মুক্তি পেতে চেয়েছিলাম, এই ক্ষেত্রে এটি সঠিক উপায়।
জোশুয়া পিন্টার

5

কনসোল থেকে লাল সতর্কতাগুলি নিষ্ক্রিয় করার চেষ্টা করার জন্য যারা এইভাবে আসছেন তাদের পক্ষে, ফেবু / 17 হিসাবে একেবারে অকেজো তথ্য দেয়, আপনি এই কোডের লাইনটি কোথাও যুক্ত করতে পারেন

console.error = (error) => error.apply;

সমস্ত অক্ষম করে console.error


4
ধন্যবাদ! আমি বুঝতেও পারি নি যে আমার কনসোল ত্রুটি হ'ল লাল পর্দা পপ আপ হওয়ার কারণ। আমি ভেবেছিলাম চেষ্টা / কাজ করে না বলে কিছু ভুল হয়েছে: ও।
নিক

5

console.disableYellowBox = সত্য;

এটি অ্যাপ্লিকেশন স্তরের জন্য কাজ করেছে এটি এডেক্স.জেএস ফাইলের যে কোনও জায়গায় রাখুন


4

console.disableYellowBox = true;আপনার আবেদনের যে কোনও জায়গায় হলুদ বাক্স স্থানটি অক্ষম করতে । সাধারণত রুট ফাইলে তাই এটি আইওএস এবং অ্যান্ড্রয়েড উভয় ক্ষেত্রেই প্রযোজ্য।

আরও বিশদ পাওয়ার জন্য দয়া করে অফিসিয়াল ডকুমেন্টটি দেখুন



2

আমি দেখতে পেয়েছি যে আমি যখন উল্লিখিত পদ্ধতিগুলি ব্যবহার করে নির্দিষ্ট সতর্কতাগুলি (হলুদ-বাক্স বার্তা) অক্ষম করেছিলাম তখনও আমার মোবাইল ডিভাইসে এই সতর্কতাগুলি অক্ষম করা হয়েছিল , তবে সেগুলি এখনও আমার কনসোলটিতে লগ করা হয়েছিল যা অত্যন্ত বিরক্তিকর এবং বিরক্তিকর ছিল।

সতর্কতাগুলি আপনার কনসোলে লগ হওয়া থেকে রোধ করতে আপনি কেবলমাত্র অবজেক্টের warnপদ্ধতিটি ওভাররাইড করতে পারেন console

// This will prevent all warnings from being logged
console.warn = () => {};

এমনকি প্রদত্ত বার্তাটি পরীক্ষা করে কেবলমাত্র নির্দিষ্ট সতর্কতাগুলি অক্ষম করা সম্ভব:

// Hold a reference to the original function so that it can be called later
const originalWarn = console.warn;

console.warn = (message, ...optionalParams) => {
  // Insure that we don't try to perform any string-only operations on
  // a non-string type:
  if (typeof message === 'string') {
    // Check if the message contains the blacklisted substring
    if (/Your blacklisted substring goes here/g.test(message))
    {
      // Don't log the value
      return;
    }
  }

  // Otherwise delegate to the original 'console.warn' function
  originalWarn(message, ...optionalParams);
};

আপনি যদি স্ট্রিংটি পরীক্ষা করতে নিয়মিত এক্সপ্রেশন ব্যবহার করতে (বা না চান) করতে পারেন তবে indexOfপদ্ধতিটি ঠিক পাশাপাশি কাজ করবে:

// An index of -1 will be returned if the blacklisted substring was NOT found
if (message.indexOf('Your blacklisted substring goes here') > -1) {
  // Don't log the message
  return;
}

সচেতন থাকুন যে এই কৌশলটি সমস্ত বার্তাগুলিকে ফিল্টার করবেwarn যা সেখান থেকে উদ্ভূত হয়েছে তা নির্বিশেষে ফাংশনের যায়। এর কারণে, সাবধান হন যে আপনি একটি অত্যধিক উদার ব্ল্যাকলিস্ট নির্দিষ্ট না করেছেন যা প্রতিক্রিয়া নেটিভ বাদে অন্য কোথাও থেকে উত্পন্ন অন্যান্য অর্থবহ ত্রুটিগুলি দমন করবে।

এছাড়াও, আমি বিশ্বাস করি যে প্রতিক্রিয়া নেটিভ console.errorত্রুটিগুলি লগ করার জন্য পদ্ধতিটি ব্যবহার করে (লাল-বাক্স বার্তাগুলি), তাই আমি ধরে নিচ্ছি যে এই কৌশলটি নির্দিষ্ট ত্রুটিগুলিও ফিল্টার করতে ব্যবহার করা যেতে পারে।



1

আমি আমাদের টিম দ্বারা একটি ছোট সরঞ্জাম দেব প্রস্তাব, এটি ফ্লোট আইকন মধ্যে সমস্ত সতর্কতা এবং ত্রুটি সংগ্রহ। তুলনা করুন console.disableYellowBox = true;, আপনি এখনও দেখতে পাচ্ছেন যে সতর্কতা বা ত্রুটি কোথায় তবে এটি আপনাকে বিরক্ত করে না। এখানে চিত্র বর্ণনা লিখুন ডাব্লুটি-কনসোল গিথুব রেপো: https://github.com/WeBankFinTech/wt-console


0

আপনার AppDelegate.m ফাইলে আপনি এই লাইনটি পরিবর্তন করতে পারেন:

jsCodeLocation = [NSURL URLWithString:@"http://localhost:8081/index.ios.bundle?platform=ios&dev=true"];

এবং শেষে dev=trueদ্বারা প্রতিস্থাপন dev=false


0

সম্পর্কিত: প্রতিক্রিয়া নেটিভ লাইব্রেরি থেকে Xcode সতর্কতা দমন করুন

(তবে নিজের কোডের জন্য নয়)

কেন: নতুন আরএন-অ্যাপ্লিকেশনটি শুরু করার সময়, এক্সকোড প্রকল্পে 100 টি সতর্কতা রয়েছে যা শব্দকে বিভ্রান্ত করছে (তবে অন্যথায় সম্ভবত নিরীহ)

সমাধান: সেট সব সতর্কবার্তা দমন করার হ্যাঁ অধীনে সেটিংস বিল্ড প্রাসঙ্গিক লক্ষ্যমাত্রা জন্য।

এখানে চিত্র বর্ণনা লিখুন

ফ্রেমওয়ার্ক থেকে এক্সকোডে সতর্কতা অক্ষম করুন

https://github.com/facebook/react-native/issues/11736


এছাড়াও; যুক্তি ত্রুটির জন্য; "-নালিলেজার-অ্যানালিজার-অক্ষম-সমস্ত-চেক" দেখুন
লিওনার্ড

আসল প্রশ্নটি ইন-অ্যাপ্লিকেশন সতর্কতা সম্পর্কিত ছিল (অর্থাত্ হলুদ বাক্স), এক্সকোড প্রকল্পের সতর্কতাগুলি পরিষ্কার করার চেষ্টা করার সময় আমি এই প্রশ্নটি পেয়েছি। ডাউনভোট কেন? মেটা.স্ট্যাকওভারফ্লো.com
লিওনার্ড
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.