কম্পোনেন্ট উইল রিসিপপ্রপস নামকরণ করা হয়েছে


10

আমি মেটেরিয়াল ইউআই সোয়াইপযোগ্য ভিউগুলি ব্যবহার করছি যা রিঅ্যাক্টসইয়েপযোগ্য ভিউ প্যাকেজ ব্যবহার করে, আমি কনসোলে এই ত্রুটিটি পাচ্ছি

রিঅ্যাক্ট-ডম.ডিভলপমেন্ট.জেএস: 12466 সতর্কতা: উপাদানবিইল রিসিপপ্রপসগুলির নাম পরিবর্তন করা হয়েছে, এবং এটি ব্যবহারের জন্য প্রস্তাবিত নয়। বিশদ জন্য দেখুন।

  • উপাদান আনার কোড বা পার্শ্ব প্রতিক্রিয়াগুলি উপাদান ডিডআপডেটে সরান।
  • আপনি যখনই রাষ্ট্রের আপডেটগুলি স্থির করে রাখেন যখনই প্রপস পরিবর্তন হয়, মেমোয়াইজেশন কৌশলগুলি ব্যবহার করতে বা স্ট্যাটিক গেটডেরাইভস্টেটফ্রোমপ্রসগুলিতে সরান আপনার কোডটি রিফ্যাক্টর। আরও জানুন এখানে:
  • এই সতর্কতাটি অ-কঠোর মোডে দমন করতে ইউএনএসএফের প্রতিযোগী উইল রিসিপেটপ্রোপ্সগুলিকে পুনরায় নামকরণ করুন 17.x এর প্রতিক্রিয়াতে, কেবল ইউএনএসএফE_ নাম কাজ করবে। সমস্ত অবচিত জীবনচক্রকে তাদের নতুন নামে নতুন নামকরণ করতে npx react-codemod rename-unsafe-lifecyclesআপনি আপনার প্রকল্প উত্স ফোল্ডারে চালাতে পারেন ।

দয়া করে নীচের উপাদানগুলি আপডেট করুন: প্রতিক্রিয়াশীলযোগ্য ভিউ

এই ত্রুটি থেকে মুক্তি পাওয়ার জন্য কি কোনও উপায় আছে আমি ইউএনএসএফ প্রতিযোগিতা উইল রিসিপেটপ্রোস চেষ্টা করেছি তবে কিছুই পরিবর্তন হয়নি


1
আপনি কি আপনার উপাদান ব্যবহার componentWillReceivePropsকরছেন , বা এটি আপনার প্যাকেজ থেকে আসছে?
মার্টিন

1
এটি প্রতিক্রিয়া-সোয়াইপযোগ্য-ভিউ প্যাকেজ থেকে আসছে
বুক লাউ

উত্তর:


8

মনে হচ্ছে এটি ইতিমধ্যে রক্ষণাবেক্ষণকারীদের কাছে রিপোর্ট করা হয়েছে।

এখন, ওপেন সোর্স সফ্টওয়্যার গ্রাহক হিসাবে আপনি:

  • সমস্যাটি সমাধান করার জন্য তাদের অপেক্ষা করুন (বা ঠিক করবেন না)
  • শীতল হোন এবং তাদের জন্য এটি ঠিক করার জন্য একটি PR জমা দিন :) রেপোর সমস্ত উল্লেখ এখানেcomponentWillReceiveProps
  • ব্যবহার করার জন্য একটি নতুন প্যাকেজ সন্ধান করুন

শেষ পর্যন্ত, এটি আপনার সফ্টওয়্যার সম্পর্কিত কোনও ত্রুটি নয়, তবে এটি নির্ভর করে। এগুলি ঠিক করা আপনার দায়বদ্ধতা নয়। যদি আপনার অ্যাপ্লিকেশনটি চালিত হয় তবে তা ঠিক থাকবে। থেকে সতর্কতা react-dom.development.jsউত্পাদন প্রদর্শিত হবে না।


2

getDerivedStateFromPropsপরিবর্তে ব্যবহার করুনcomponentWillReceiveProps

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

আগে:

// Before
class ExampleComponent extends React.Component {
  state = {
    isScrollingDown: false,
  };

  componentWillReceiveProps(nextProps) {
    if (this.props.currentRow !== nextProps.currentRow) {
      this.setState({
        isScrollingDown:
          nextProps.currentRow > this.props.currentRow,
      });
    }
  }
}

পরে:

// After
class ExampleComponent extends React.Component {
  // Initialize state in constructor,
  // Or with a property initializer.
  state = {
    isScrollingDown: false,
    lastRow: null,
  };

  static getDerivedStateFromProps(props, state) {
    if (props.currentRow !== state.lastRow) {
      return {
        isScrollingDown: props.currentRow > state.lastRow,
        lastRow: props.currentRow,
      };
    }

    // Return null to indicate no change to state.
    return null;
  }
}

https://reactjs.org/blog/2018/03/27/update-on-async-rendering.html


1

আমার কোড উপাদানটি যেখানে উইল রিসিপপ্রপ্রোসে কল করা হয়েছিল তা খুঁজে পেতে আমার সমস্যা হয়েছিল। আমি সতর্কবাণীতে লক্ষ্য করেছি যে এটিতে একটি নির্দিষ্ট উপাদান "ড্রয়ার" উল্লেখ করা হয়েছে যা আমরা ব্যবহার করছি পিঁপড়া-ডি লাইবের অংশ। সর্বশেষ সংস্করণে পিঁপড়া-ডি আপগ্রেড করার পরে, সতর্কতাটি চলে গেল।


1

নেটিভ প্রকল্পে প্রতিক্রিয়া দেখা দেওয়ার ক্ষেত্রে এটি একটি সাধারণ ত্রুটি। তাই নিম্নলিখিত পদক্ষেপের মাধ্যমে সমাধান করা যেতে পারে:

  • প্রথমে আপনার প্রতিক্রিয়া নেটিভ প্রকল্প ডিরেক্টরিতে লোড্যাশ ইনস্টল করুন,
npm i --save lodash

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

    import { YellowBox } from 'react-native';
    import _ from 'lodash';

    YellowBox.ignoreWarnings(['componentWillReceiveProps']);
    const _console = _.clone(console);
    console.warn = message => {
    if (message.indexOf('componentWillReceiveProps') <= -1) {
     _console.warn(message);
    } 
   };
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.