আমি জানি যে আমি ইনপুটটি পরিবর্তন করতে পারব না এবং এটিকে রূপান্তর করতে অবজেক্টটির ক্লোন করা উচিত। আমি একটি রেডুয়াক্স স্টার্টার প্রকল্পে ব্যবহৃত কনভেনশনটি অনুসরণ করছিলাম যা ব্যবহৃত হয়েছিল:
ADD_ITEM: (state, action) => ({
...state,
items: [...state.items, action.payload.value],
lastUpdated: action.payload.date
})
আইটেম যুক্ত করার জন্য - আমি অ্যারেতে আইটেম সংযোজন করতে স্প্রেডের ব্যবহার পাই।
মুছে ফেলার জন্য আমি ব্যবহার করেছি:
DELETE_ITEM: (state, action) => ({
...state,
items: [...state.items.splice(0, action.payload), ...state.items.splice(1)],
lastUpdated: Date.now()
})
তবে এটি ইনপুট স্থিতি অবজেক্টটিকে রূপান্তর করছে - আমি কোনও নতুন অবজেক্ট ফিরিয়ে দিলেও কি এটি নিষিদ্ধ?
items: [...state.items.slice(0, action.payload.value), ...state.items.slice(action.payload.value + 1 )]
স্প্লাইসের পরিবর্তে এখন স্লাইস ব্যবহার করুন যাতে ইনপুটটি পরিবর্তন না করা যায় - এই উপায় কি এই উপায় বা আরও সংক্ষিপ্ত উপায় আছে?