smalljs$molঅনুসন্ধান⌘ Kডকুমেন্টেশনপ্লেগ্রাউন্ডতুলনাইকোসিস্টেমসম্পর্কেBN
সমস্যা সমাধানGetting Startedপরিচিতিমানসিক মডেলশুরু করাTypeScript থেকে view.treeপ্রকল্পের কাঠামোটুলিংEssentialsইনস্টলেশনভিউস্টেট ও রিয়্যাক্টিভিটিরাউটিংরেন্ডারিংটেস্টিংডিপ্লয়সমস্যা সমাধানDataডেটা ফেচিংডেটা স্কিমাGiper BazaMoreশোকেসReact, Vue ও Svelte থেকেকুকবুকAdvancedপ্লাগইনমডিউল মেটাডেটাঅফলাইনগোস্ট ভিউAboutসাধারণ জিজ্ঞাসাটিমরিলিজAPI$mol_button_major$mol_button_minor$mol_string$mol_number$mol_text$mol_paragraph$mol_list$mol_row$mol_link$mol_check$mol_switch$mol_select$mol_scroll$mol_page$mol_pick

সমস্যা সমাধান

এই পৃষ্ঠার প্রতিটি ভুক্তির আকৃতি একই: বিল্ড সবুজ, অডিট পরিষ্কার, কনসোল চুপ, আর স্ক্রিন হয় খালি নয়তো যা চেয়েছিলেন তা নয়। কম্পাইলার এই ভুলগুলো দেখতে পায় না, কারণ প্রতিটিই বৈধ প্রোগ্রাম — শুধু সেটি অন্য একটি কম্পোনেন্ট বর্ণনা করে। আপনি যা দেখছেন তার সঙ্গে মেলে এমন শিরোনামটি খুঁজুন; তার নিচে কারণ ও সমাধান আছে।

আমার প্রপার্টি ওভাররাইড কিছুই করে না, কোনো এররও নেই

view.tree-এর নাম আর ক্লাসের মেথডের নাম আলাদা, বেশিরভাগ সময় ছোট-বড় হাতের অক্ষরে: ট্রি-তে exchange_form, ক্লাসে exchangeForm। এ দুটি আলাদা প্রপার্টি। ক্লাসেরটি কখনো ডাকা হয় না, ট্রি-এরটি তার ডিফল্ট ধরে রাখে, আর কিছুই এ কথা জানায় না।নাম সর্বত্রই snake_case এবং অক্ষরে অক্ষরে মিলতে হবে। কোনো .view.ts সম্পাদনার পর দেখে নিন, প্রতিটি ওভাররাইড এখনো বিদ্যমান কোনো প্রপার্টির নামই বলছে কি না; ট্রি-এর পাশে জেনারেট হওয়া -view.tree/*.view.tree.d.ts ফাইলটিই মিলিয়ে দেখার তালিকা।

ইনপুটে প্লেসহোল্ডার, নিষ্ক্রিয় অবস্থা বা type দরকার

এগুলো $mol_string-এর প্রপার্টি: প্লেসহোল্ডারের জন্য hint, নিষ্ক্রিয় অবস্থার জন্য enabled, ইনপুটের ধরনের জন্য type। যেখানে ইনপুটটি ব্যবহার হচ্ছে সেখানেই সেট করুন:1<= Password $mol_string2 hint \Password3 type \password4 enabled <= can_edit true5 value? <=> password? \অন্য যেকোনো কম্পোনেন্টের অন্য যেকোনো প্রপার্টিও একইভাবে পাওয়া যায়: তার .view.tree খুলুন, যেমনটি সোর্স কীভাবে পড়বেন দেখায়।কম্পোনেন্ট যেসব প্রকৃত DOM অ্যাট্রিবিউট আগে থেকে মডেল করে না, attr * সেগুলোর জন্য, আর এর নিজস্ব একটি ফাঁদ আছে: প্রথম লাইনে ^ নেই এমন একটি ব্লক বেসের গোটা অ্যাট্রিবিউট ডিকশনারিটাই প্রতিস্থাপন করে, ফলে এভাবে লেখা $mol_button তার disabled, roletabindex হারায়। উত্তরাধিকার পেতে ব্লকটি ^ দিয়ে শুরু করুন, তারপর নিজের কী যোগ করুন:1attr *2 ^3 data_kind \primary

একটি শব্দ আলাদা আলাদা অক্ষর হয়ে রেন্ডার হয়

যেখানে লিস্ট প্রত্যাশিত সেখানে স্ট্রিং দেওয়া হয়েছে, আর স্ট্রিংটি অক্ষরে অক্ষরে ছড়িয়ে গেছে। স্ট্রিং শুরু হয় \ দিয়ে, লিস্ট শুরু হয় / দিয়ে। সাধারণ ঘটনাটি sub নিয়ে, যেটি একটি লিস্ট:1sub / <= label \Hello

স্ক্রিন খালি, অথচ টেস্ট সবুজ

একটি ওভাররাইড .view.ts থেকে খসে পড়েছে। ট্রি প্রতিটি প্রপার্টিকে একটি ডিফল্ট দেয়, তাই ক্লাস যখন আর rows() নতুন করে সংজ্ঞায়িত করে না, TypeScript সন্তুষ্ট থাকে আর লিস্টটি খালি রেন্ডার হয়। যে টেস্টগুলো শুধু মডেল যাচাই করে সেগুলো সবুজই থাকে, কারণ মডেল ঠিকই আছে।স্ক্রিন যে ওভাররাইডগুলোর ওপর নির্ভর করে, তাদের প্রত্যেকটির জন্য এমন টেস্ট লিখুন যা ব্যবহারকারী যা দেখে তা-ই পড়ে: rows(), sub(), সাব-ভিউয়ের title(), অথবা DOM। টেস্টিং দুটোই দেখায়।

ডেটা কখনো লোড হয় না, কম্পোনেন্ট লোডিং স্টেটে আটকে আছে

কোনো @ $mol_mem মেথড তার মান হিসেবে একটি promise ফেরত দিয়েছে: fetch( uri ).then( ... ), একটি async মেথড, কিংবা $mol_wire_async( this ).load()-এর ফল। সেলের ভেতরে থাকা promise সবার কাছেই "এখনো গণনা চলছে" বলে পড়া হয়, আর সেটি রিজলভ হলে সেলটি পুনরায় গণনা হয়ে একটি টাটকা promise বানায়। নেটওয়ার্ক কাজ করে; ভিউ কখনো ফল দেখে না।সঠিক আকৃতিটি সিঙ্ক্রোনাস: সেলের ভেতরে this.$.$mol_fetch.json( uri ) ডাকুন এবং পার্স করা মানটি ফেরত দিন। রেসপন্স না আসা পর্যন্ত ফাইবার সাসপেন্ড থাকে, তারপর সেলটি আবার চালায়, তাই আপনার কোডে promise কখনো দেখাই দেয় না। যেখানে অ্যাসিঙ্ক কাজ অন্য কোথাও করতেই হয়, সেখানে তার ফল আলাদা একটি স্টেট সেলে রাখুন আর ইফেক্টটি একটি ফ্ল্যাগ বা একটি কী ফেরত দিক, কখনোই promise নয়।দ্বিতীয় কারণ হলো গিলে ফেলা ত্রুটি: সেলের ভেতরে এমন try/catch, যা আসল ব্যর্থতার সঙ্গে সাসপেনশনটাকেও ধরে ফেলে। যা Promise, তা পুনরায় থ্রো করুন, অথবা $mol_fail_catch ব্যবহার করুন — এটি আপনার হয়ে এই যাচাইটি করে।

বৃত্তাকার সাবস্ক্রিপশন

GitHub-এ এই পৃষ্ঠা সম্পাদনা করুনএটি কি সহায়ক ছিল?হ্যাঁনাপূর্ববর্তীডিপ্লয়পরবর্তীডেটা ফেচিং
এই পৃষ্ঠায়আমার প্রপার্টি ওভাররাইড কিছুই করে না, কোনো এররও নেইইনপুটে প্লেসহোল্ডার, নিষ্ক্রিয় অবস্থা বা type দরকারএকটি শব্দ আলাদা আলাদা অক্ষর হয়ে রেন্ডার হয়স্ক্রিন খালি, অথচ টেস্ট সবুজডেটা কখনো লোড হয় না, কম্পোনেন্ট লোডিং স্টেটে আটকে আছেবৃত্তাকার সাবস্ক্রিপশনসর্বোচ্চ কল স্ট্যাকবড় হাতের অক্ষরে লেখা মান TypeScript থেকে ওভাররাইড করা যায় নানেস্টেড লিস্টের প্রতিটি সারি একই আইটেম দেখায়সাব-ভিউয়ের ক্লাস বদলালাম, তার কনটেন্ট উধাও হয়ে গেলবেস কম্পোনেন্টের view.ts-এর মেথডগুলো সাবক্লাসে নেইএকই view.tree ফাইলে ঘোষিত বেস কম্পোনেন্ট তার আচরণ হারায়সাব-ভিউ আর তার ভেতরের কম্পোনেন্টের মধ্যে স্টাইল চুইয়ে যায়false অ্যাট্রিবিউটের ওপর সিলেক্টর কখনো মেলে নাস্টাইলের সংখ্যা কিছুই বদলায় নাস্ক্রল ভিউয়ের দুই সন্তান একে অন্যের ওপর বসে যায়minimal_height-এর কোনো দৃশ্যমান প্রভাব নেইএমবেড করা কম্পোনেন্ট পৃষ্ঠাটিকে পাশে ঠেলে দেয়থার্ড-পার্টি CSS আমার কম্পোনেন্টকে স্টাইল করে নাবর্তমান পৃষ্ঠার লিঙ্কে ক্লিক করলে URL মুছে যায়আমার ইনপুট হ্যান্ডলার প্রতিটি রেন্ডারে চলেআমার ভ্যালু সেটার থেকে থ্রো করা এররটি কখনো দেখা যায় নাকী-যুক্ত হ্যান্ডলার বাইন্ডিং অনুপস্থিত বলে জানানো হয়বান্ডলে এমন মডিউল আছে যা আমি কখনো ব্যবহারই করি নাপরবর্তী
Type to search the documentation.