আমি সবেমাত্র আমার প্রতিক্রিয়াশীল নেটিভকে আপগ্রেড করেছি এবং এখন আইওএস সিমুলেটরটিতে অনেকগুলি সতর্কতা রয়েছে। সেগুলি ঠিক করার পাশাপাশি, আমি কীভাবে এই সতর্কতাগুলি লুকিয়ে রাখব যাতে নীচে কী রয়েছে তা আমি দেখতে পারি?
উত্তর:
দেশীয় প্রতিক্রিয়া অনুযায়ী নথিপত্র , আপনি সেট করে সতর্কতা বার্তা লুকিয়ে রাখতে পারেন disableYellowBox
করতে true
ভালো:
console.disableYellowBox = true;
হালনাগাদ
~~ কনসোল.ডিজিবলয়েবক্স ~~ সরানো হয়েছে এবং এখন আপনি ব্যবহার করতে পারেন:
import { LogBox } from 'react-native';
LogBox.ignoreLogs(['Warning: ...']); // Ignore log notification by message
LogBox.ignoreAllLogs();//Ignore all log notifications
সমস্ত লগ বিজ্ঞপ্তি উপেক্ষা
কিছু নির্দিষ্ট সতর্কতাগুলি নির্বাচন করে আড়াল করার একটি আরও ভাল উপায় (যা সর্বশেষতম এবং সর্বশ্রেষ্ঠ আরএন সংস্করণে আপগ্রেড হওয়ার পরে অনির্দিষ্টকালের জন্য প্রদর্শিত হবে) আপনার প্রকল্পের একটি সাধারণ জেএস ফাইলে কনসোল.গাইনরেডইলোবক্স সেট করা । উদাহরণস্বরূপ, আমার প্রকল্পটি আজ আরএন 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'];
এইভাবে আমি এখনও আমার ত্রুটিযুক্ত পরিবেশের জন্য অন্যান্য ত্রুটিগুলি এবং সতর্কতা সহায়ক পেয়েছি তবে আমি আর সেই বিশেষটিকে আর দেখতে পাচ্ছি না।
হলুদ বাক্স স্থানটি অক্ষম করতে
console.disableYellowBox = true;
আপনার আবেদনের যে কোনও জায়গায় সাধারণত রুট ফাইলে তাই এটি আইওএস এবং অ্যান্ড্রয়েড উভয় ক্ষেত্রেই প্রযোজ্য।
উদাহরণ স্বরূপ
export default class App extends React.Component {
render() {
console.disableYellowBox = true;
return (<View></View>);
}
}
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;
আপনার 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);
আপনার অ্যাপ.জেএসএস ফাইলটিতে যে কোনও উপাদানগুলির জীবনচক্র পদ্ধতির অধীনে উপাদান রয়েছে। ডিপমাউন্টের মতো উপাদান () এর মধ্যে আপনাকে এই দুটি যুক্ত করতে হবে, কোনওটি বাদ দিয়ে কাজ করবে না।
console.ignoredYellowBox = ['Warning: Each', 'Warning: Failed'];
console.disableYellowBox = true;
আপনি যদি কোনও নির্দিষ্ট বিল্ডে এগুলি আড়াল করতে চান কারণ আপনি একটি ডেমো বা অন্য কিছু করছেন, আপনি নিজের এক্সকোড স্কিমটিকে এটির রিলিজ তৈরি করতে সম্পাদনা করতে পারেন এবং এই হলুদ সতর্কতাগুলি প্রদর্শিত হবে না। অতিরিক্তভাবে, আপনার অ্যাপ্লিকেশনটি আরও দ্রুত চলবে।
আপনি নিম্নলিখিতটি করে আপনার সিমুলেটর এবং বাস্তব ডিভাইসের জন্য স্কিমটি সম্পাদনা করতে পারেন:
Product
> Scheme
>Edit Scheme...
Build Configuration
থেকে পরিবর্তন Debug
করুন Release
।Release
: কোনও সতর্কতা এবং দ্রুত অ্যাপ্লিকেশন!
Release
কনসোল থেকে লাল সতর্কতাগুলি নিষ্ক্রিয় করার চেষ্টা করার জন্য যারা এইভাবে আসছেন তাদের পক্ষে, ফেবু / 17 হিসাবে একেবারে অকেজো তথ্য দেয়, আপনি এই কোডের লাইনটি কোথাও যুক্ত করতে পারেন
console.error = (error) => error.apply;
সমস্ত অক্ষম করে console.error
console.disableYellowBox = true;
আপনার আবেদনের যে কোনও জায়গায় হলুদ বাক্স স্থানটি অক্ষম করতে । সাধারণত রুট ফাইলে তাই এটি আইওএস এবং অ্যান্ড্রয়েড উভয় ক্ষেত্রেই প্রযোজ্য।
আরও বিশদ পাওয়ার জন্য দয়া করে অফিসিয়াল ডকুমেন্টটি দেখুন
console.disableYellowBox = সত্য;
আমি দেখতে পেয়েছি যে আমি যখন উল্লিখিত পদ্ধতিগুলি ব্যবহার করে নির্দিষ্ট সতর্কতাগুলি (হলুদ-বাক্স বার্তা) অক্ষম করেছিলাম তখনও আমার মোবাইল ডিভাইসে এই সতর্কতাগুলি অক্ষম করা হয়েছিল , তবে সেগুলি এখনও আমার কনসোলটিতে লগ করা হয়েছিল যা অত্যন্ত বিরক্তিকর এবং বিরক্তিকর ছিল।
সতর্কতাগুলি আপনার কনসোলে লগ হওয়া থেকে রোধ করতে আপনি কেবলমাত্র অবজেক্টের 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
ত্রুটিগুলি লগ করার জন্য পদ্ধতিটি ব্যবহার করে (লাল-বাক্স বার্তাগুলি), তাই আমি ধরে নিচ্ছি যে এই কৌশলটি নির্দিষ্ট ত্রুটিগুলিও ফিল্টার করতে ব্যবহার করা যেতে পারে।
আমি আমাদের টিম দ্বারা একটি ছোট সরঞ্জাম দেব প্রস্তাব, এটি ফ্লোট আইকন মধ্যে সমস্ত সতর্কতা এবং ত্রুটি সংগ্রহ। তুলনা করুন console.disableYellowBox = true;
, আপনি এখনও দেখতে পাচ্ছেন যে সতর্কতা বা ত্রুটি কোথায় তবে এটি আপনাকে বিরক্ত করে না।
ডাব্লুটি-কনসোল গিথুব রেপো: https://github.com/WeBankFinTech/wt-console
(তবে নিজের কোডের জন্য নয়)
কেন: নতুন আরএন-অ্যাপ্লিকেশনটি শুরু করার সময়, এক্সকোড প্রকল্পে 100 টি সতর্কতা রয়েছে যা শব্দকে বিভ্রান্ত করছে (তবে অন্যথায় সম্ভবত নিরীহ)
সমাধান: সেট সব সতর্কবার্তা দমন করার হ্যাঁ অধীনে সেটিংস বিল্ড প্রাসঙ্গিক লক্ষ্যমাত্রা জন্য।