প্রতিক্রিয়া 16 এবং প্রতিক্রিয়া> = 15.6 এর জন্য
সেটারটি .value=আমরা যেমন চাইছিলাম তেমন কাজ করছে না কারণ প্রতিক্রিয়া পাঠাগারটি ইনপুট মান সেটারকে ওভাররাইড করে তবে আমরা inputপ্রসঙ্গ হিসাবে সরাসরি ফাংশনটিতে কল করতে পারি ।
var nativeInputValueSetter = Object.getOwnPropertyDescriptor(window.HTMLInputElement.prototype, "value").set;
nativeInputValueSetter.call(input, 'react 16 value');
var ev2 = new Event('input', { bubbles: true});
input.dispatchEvent(ev2);
পাঠ্য এলাকা উপাদান জন্য আপনি ব্যবহার করা উচিত prototypeএর HTMLTextAreaElementবর্গ।
নতুন কোডেন উদাহরণ ।
এই অবদানকারী এবং তার সমাধানের সমস্ত ক্রেডিট
কেবলমাত্র প্রতিক্রিয়া <= 15.5 এর জন্য পুরানো উত্তর
সঙ্গে react-dom ^15.6.0 আপনি ব্যবহার করতে পারেন simulatedঘটনা বস্তুর উপর পতাকা ঘটনা মধ্য দিয়ে পাস করার জন্য
var ev = new Event('input', { bubbles: true});
ev.simulated = true;
element.value = 'Something new';
element.dispatchEvent(ev);
আমি একটি উদাহরণ সহ একটি কোডেন তৈরি করেছি
নতুন পতাকা কেন প্রয়োজন তা বুঝতে আমি খুঁজে পেয়েছি এই মন্তব্যটি খুব সহায়ক বলে মনে করেছি:
প্রতিক্রিয়াতে ইনপুট যুক্তি এখন ডিপাপের পরিবর্তিত ইভেন্টগুলি যাতে তারা মূল্য অনুযায়ী একাধিকবার গুলি চালায় না। এটি উভয় ব্রাউজারের চেঞ্জ / অন ইনপুট ইভেন্টের পাশাপাশি ডিওএম নোড মান প্রাপের (যখন আপনি জাভাস্ক্রিপ্টের মাধ্যমে মান আপডেট করবেন) সেট করে। এর অর্থের পার্শ্ব প্রতিক্রিয়া রয়েছে যে আপনি যদি ইনপুটটির মানটি ম্যানুয়ালি ইনপুট করে থাকেন = ', এটি একটি সদৃশ ইভেন্ট হিসাবে বিবেচনা করুন এবং এটি গ্রাস করুন।
এটি সাধারণ ক্ষেত্রে সূক্ষ্মভাবে কাজ করে কারণ একটি "আসল" ব্রাউজার সূচিত ইভেন্টটি উপাদানটির মূল্য সেট করে না। আপনি এই যুক্তি থেকে গোপনে জামিন দিতে পারেন ঘটনাটি আপনি যেভাবে সিমুলেটেড পতাকা দিয়ে ট্রিগার করেন তা ট্যাগ করে এবং প্রতিক্রিয়া জানায় ইভেন্টটি সর্বদা আগুন ধরিয়ে দেবে।
https://github.com/jquense/react/blob/9a93af4411a8e880bbc05392ccf2b195c97502d1/src/renderers/dom/client/eventPlugins/ChangeEventPlugin.js#L128