সমস্যা
[Vue warn]: Property or method "changeSetting" is not defined on the instance but referenced during render. Make sure to declare reactive data properties in the data option. (found in <MainTable>)
ত্রুটি ঘটছে কারণ changeSetting
পদ্ধতিটি MainTable
এখানে উপাদানটিতে উল্লেখ করা হচ্ছে :
"<button @click='changeSetting(index)'> Info </button>" +
তবে changeSetting
পদ্ধতিটি MainTable
উপাদানটিতে সংজ্ঞায়িত করা হয়নি । এটি এখানে মূল উপাদানটিতে সংজ্ঞায়িত করা হচ্ছে:
var app = new Vue({
el: "#settings",
data: data,
methods: {
changeSetting: function(index) {
data.settingsSelected = data.settings[index];
}
}
});
যা মনে রাখা দরকার তা হ'ল বৈশিষ্ট্য এবং পদ্ধতিগুলি কেবলমাত্র সেই ক্ষেত্রগুলিতেই সংজ্ঞায়িত করা যেতে পারে যেখানে সেগুলি সংজ্ঞায়িত করা হয়।
প্যারেন্ট টেমপ্লেটের সমস্ত কিছু প্যারেন্ট স্কোপেই সংকলিত হয়; চাইল্ড টেমপ্লেটের সমস্ত কিছুই সন্তানের সুযোগে সংকলিত।
আপনি ভয়ের ডকুমেন্টেশনে উপাদান সংকলনের সুযোগ সম্পর্কে আরও পড়তে পারেন ।
আমি এটি সম্পর্কে কি করতে পারি?
এখনও পর্যন্ত সঠিক সুযোগে জিনিসগুলি সংজ্ঞায়িত করার বিষয়ে অনেক কথাবার্তা হয়েছে তাই ফিক্সটি কেবল changeSetting
সংজ্ঞাটিকে MainTable
উপাদানটিতে স্থানান্তরিত করতে হবে ?
এটি সহজ বলে মনে হচ্ছে তবে আমি যা প্রস্তাব করি তা এখানে।
আপনি সম্ভবত চান আপনার MainTable
উপাদানটি বোবা / উপস্থাপক উপাদান হয়ে উঠুক। ( এখানে পড়ার মতো এমন কিছু বিষয় যা আপনি যদি না জানেন তবে এটি কী টিএল; ড। হ'ল উপাদানটি কোনও কিছু সরবরাহের জন্য কেবল দায়ী - কোনও যুক্তি নেই)। যুক্তিটির জন্য স্মার্ট / ধারক উপাদান দায়ী - আপনার প্রশ্নে দেওয়া উদাহরণে মূল উপাদানটি হবে স্মার্ট / ধারক উপাদান। এই আর্কিটেকচারের সাহায্যে উপাদানগুলি ইন্টারঅ্যাক্ট করার জন্য আপনি ভিউর পিতামাতার-শিশু যোগাযোগের পদ্ধতিগুলি ব্যবহার করতে পারেন। আপনি প্রপসেরMainTable
মাধ্যমে ডেটা নীচে দিয়ে দিন এবং ইভেন্টগুলির মাধ্যমে এর ক্রিয়াকলাপ থেকে ব্যবহারকারীর ক্রিয়াগুলি প্রেরণ করেন । এটি দেখতে এরকম কিছু দেখাচ্ছে:MainTable
Vue.component('main-table', {
template: "<ul>" +
"<li v-for='(set, index) in settings'>" +
"{{index}}) " +
"{{set.title}}" +
"<button @click='changeSetting(index)'> Info </button>" +
"</li>" +
"</ul>",
props: ['settings'],
methods: {
changeSetting(value) {
this.$emit('change', value);
},
},
});
var app = new Vue({
el: '#settings',
template: '<main-table :settings="data.settings" @change="changeSetting"></main-table>',
data: data,
methods: {
changeSetting(value) {
},
},
}),
উপরোক্তগুলি আপনাকে কী করতে হবে এবং আপনার সমস্যা সমাধানের জন্য কিকস্টার্ট সম্পর্কে একটি ভাল ধারণা দেওয়ার জন্য যথেষ্ট হওয়া উচিত।
changeSetting
করতেMainTable
অংশটি।