আমি বর্তমানে টাইপস্ক্রিপ্টে একটি প্রতিক্রিয়া অ্যাপ্লিকেশন স্থানান্তরিত করছি। এখনও অবধি, এটি বেশ ভালভাবে render
কাজ করে তবে আমার ফাংশনগুলির উপাদানগুলি যথাক্রমে আমার ফাংশনগুলির রিটার্নের ধরণের সাথে একটি সমস্যা আছে ।
এখনও অবধি, আমি সর্বদা JSX.Element
রিটার্নের ধরণ হিসাবে ব্যবহার করেছি , এখন কোনও উপাদান কোনও রেন্ডার না করার সিদ্ধান্ত নেয় , অর্থাত্ রিটার্ন null
, কারণ null
এর কোনও বৈধ মান নেই JSX.Element
। এটি আমার যাত্রার সূচনা ছিল, কারণ এখন আমি ওয়েবে অনুসন্ধান করেছি এবং দেখেছি যে এর ReactNode
পরিবর্তে আপনার ব্যবহার করা উচিত , এর মধ্যে রয়েছে null
এবং ঘটতে পারে এমন আরও কয়েকটি জিনিসও রয়েছে । এটি আরও ভাল বাজি বলে মনে হয়েছিল।
তবে, এখন কোনও ফাংশন উপাদান তৈরি করার সময়, টাইপস্ক্রিপ্ট ReactNode
টাইপ সম্পর্কে অভিযোগ করে । আবার, কিছু অনুসন্ধানের পরে আমি খুঁজে পেলাম যে ফাংশন উপাদানগুলির জন্য আপনার ReactElement
পরিবর্তে ব্যবহার করা উচিত । যাইহোক, আমি যদি এটি করি তবে সামঞ্জস্যতা সমস্যাটি চলে গেছে তবে এখন টাইপসক্রিপ্ট আবার null
বৈধ মান না হওয়ার বিষয়ে অভিযোগ করে ।
সুতরাং, একটি দীর্ঘ গল্প সংক্ষিপ্ত কাটা, আমার তিনটি প্রশ্ন:
- মধ্যে পার্থক্য কি
JSX.Element
,ReactNode
এবংReactElement
? render
শ্রেণীর উপাদানগুলির পদ্ধতিগুলি কেন ফিরে আসেReactNode
, তবে ফাংশন উপাদানগুলি ফিরে আসেReactElement
?- আমি কীভাবে শ্রদ্ধার সাথে এটি সমাধান করব
null
?
class Example extends Component<ExampleProps> {
শ্রেণীর জন্য, এবংconst Example: FunctionComponent<ExampleProps> = (props) => {
ফাংশন উপাদান জন্য (যেখানেExampleProps
প্রত্যাশিত সাজসরঞ্জাম জন্য একটি ইন্টারফেস)। এবং তারপরে এই ধরণের পর্যাপ্ত তথ্য রয়েছে যা রিটার্নের ধরণটি অনুমান করা যায়।