मैं एक नौसिखिया हूं और मैं रेडक्स के साथ कुछ टूडू ऐप कर रहा हूं, और मेरी समस्या तब है जब मैं, उदाहरण के लिए, टेक्स्टबॉक्स में एक मान इनपुट करता हूं, "नमूना" कहता है, और मैं एक और स्ट्रिंग इनपुट करता हूं, "नमूना 2" फिर मैं फिर से इनपुट करता हूं " नमूना", "नमूना" wc जिसे मैंने पहले इनपुट किया था, डुप्लिकेट नहीं करता है, लेकिन यह उसके स्थान पर स्थिर होने के बजाय नीचे की ओर बढ़ता है,

यहाँ मेरे टूडू के लिए कुछ बुनियादी इंटरफ़ेस है:

// मान लें कि यहां एक टेक्स्टबॉक्स है ...

नमूना

नमूना २

नमूना3

फिर जब मैं एक 'नमूना' फिर से इनपुट करता हूं, यह मानते हुए कि मैं पहले वाले को दोहराता हूं, तो यह अब है:

नमूना २

नमूना3

नमूना

शीर्ष पर स्थित 'नमूना' अपने स्थान पर स्थिर होने के बजाय नीचे की ओर चला जाता है

यहाँ एक टूडू जोड़ने के लिए मेरा रिड्यूसर है:

switch (action.type) ...
// adding todo
...  (todo = [], action) => { 
  return [ 
//logic for not duplicating the word
  ...todos.filter(todo => 
  todo.content.toLowerCase() !== 
  action.payload.toLowerCase()),

  { content: action.payload
  ...}
]
} 

क्या मुझे इस मामले में फ़िल्टर के बजाय किसी भी तरीके का प्रयास करना चाहिए?

0
Zowy 21 जुलाई 2020, 06:20

1 उत्तर

सबसे बढ़िया उत्तर

चूंकि आप सामग्री को फ़िल्टर कर रहे हैं। इसका सामान्य पहला नमूना वापस नहीं आता है। चूंकि आप पुराने मूल्य को स्प्रेड ऑपरेटर के साथ फैला रहे हैं

 filter(todo => 
  todo.content.toLowerCase() !== 
  action.payload.toLowerCase()
      action.payload.toLowerCase()

इसका मतलब है कि यदि समान मूल्य की वस्तु है तो उस मूल्य को अस्वीकार कर दें।

0
Khant 21 जुलाई 2020, 07:22