2019-04-04 পর্যন্ত অনুসরণ করে, এটি প্রত্যাশা হুকসের সাথে সম্পন্ন হতে সক্ষম বলে মনে হচ্ছে useState
:
import React, { useState } from 'react'
import uniqueId from 'lodash/utility/uniqueId'
const Field = props => {
const [ id ] = useState(uniqueId('myprefix-'))
return (
<div>
<label htmlFor={id}>{props.label}</label>
<input id={id} type="text"/>
</div>
)
}
export default Field
যেহেতু আমি এটি বুঝতে পেরেছি, আপনি অ্যারে ডেস্ট্রাকচারিংয়ের দ্বিতীয় অ্যারে আইটেমটিকে উপেক্ষা করবেন যা আপনাকে আপডেট করার অনুমতি দেবে id
, এবং এখন আপনার কাছে এমন একটি মান পাওয়া গেছে যা উপাদানটির জীবনের জন্য আর আপডেট হবে না।
এর মানটি id
হবে myprefix-<n>
যেখানে <n>
থেকে একটি ইনক্রিমেন্টাল পূর্ণসংখ্যার মান ফিরে আসবে uniqueId
। যদি এটি আপনার পক্ষে যথেষ্ট অনন্য না হয় তবে নিজের মতো করে বিবেচনা করুন
function gen4() {
return Math.random().toString(16).slice(-4)
}
function simpleUniqueId(prefix) {
return (prefix || '').concat([
gen4(),
gen4(),
gen4(),
gen4(),
gen4(),
gen4(),
gen4(),
gen4()
].join(''))
}
বা আমি এটির সাথে প্রকাশিত লাইব্রেরিটি এখানে দেখুন: https://github.com/rpearce/simple-uniqueid । এছাড়াও কয়েক হাজার বা হাজারো অন্যান্য অনন্য আইডি জিনিস রয়েছে, তবে লোডাশের uniqueId
একটি উপসর্গ সহ কাজটি করার জন্য যথেষ্ট হওয়া উচিত।
2019-07-10 আপডেট করুন
হুং এইচকে অলস প্রাথমিক অবস্থার প্রতি আমাকে ইঙ্গিত করার জন্য @ হুং এইচকে ধন্যবাদ , এর যোগফলটি হ'ল আপনি useState
যে ফাংশনটি পাস করতে পারবেন তা কেবলমাত্র প্রাথমিক মাউন্টে চালানো হবে।
// before
const [ id ] = useState(uniqueId('myprefix-'))
// after
const [ id ] = useState(() => uniqueId('myprefix-'))