मैं वर्तमान में एक क्रिया के माध्यम से अपने रेडक्स रेड्यूसर में एक गतिशील आईडी पास करने का प्रयास कर रहा हूं। मैं इस आईडी को अपने कार्यों में पूरी तरह से खींच सकता हूं, लेकिन मैं अंतिम चरण पर संघर्ष कर रहा हूं, जो मेरे रेडक्स स्टोर में मूल्य जोड़ रहा है।

यह वह कोड है जो मेरे पास अब तक है, और वास्तव में किसी भी मदद की सराहना करेंगे!

घटक: यह मेरे docDeleteId से होकर मेरे modalDocDeleteAction तक जाता है

<Icon iconType="delete" onClick={() => modalDocDeleteAction(document.documentId)}/>

const mapDispatchToProps = dispatch => ({
    modalDocDeleteAction: docDeleteId =>
        dispatch(modalDocDeleteAction(docDeleteId))
});

export default connect(
    null,
    mapDispatchToProps
)(Results);

कार्रवाई: Thunk और reduxMulti मिडलवेयर के कारण फंकी प्रेषण

export function modalDocDeleteAction(docDeleteId) {
    console.log(docDeleteId); // ID is retrieved successfully
    return dispatch => {
        dispatch([{ type: MODAL_DOC_DELETE }, modalOpenAction()]);
    };
}

रेड्यूसर:

case "MODAL_DOC_DELETE":
        return {
            ...state,
            modalTitle: "Delete Document?",
            modalText:
                    "Deleting a document will permanently remove it from S3",
            closeText: "No, Keep Document",
            continueText: "Yes, Delete Document",
            docDeleteId: !!!ID GOES HERE!!!
        };

मैं अपने रेड्यूसर को पॉप्युलेट करने के लिए docDeleteId पैरामीटर को मेरी क्रिया के माध्यम से पारित करना चाहता हूं। मैं ऑनलाइन कुछ भी खोजने के लिए संघर्ष कर रहा हूं जो कहता है कि यह संभव है, लेकिन मुझे कहीं और उपयोग के लिए उपलब्ध आईडी की आवश्यकता है, इसलिए मैं वास्तव में उम्मीद कर रहा हूं !!

इसके साथ कोई मदद बहुत अच्छी होगी! बहुत - बहुत धन्यवाद!

1
Nick 29 जुलाई 2019, 21:41

1 उत्तर

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

हम आम तौर पर पेलोड कीवर्ड में कस्टम डेटा को रेड्यूसर में पास करते हैं। अपने कोड को थोड़ा इस तरह संपादित करना

export function modalDocDeleteAction(docDeleteId) {
    console.log(docDeleteId); // ID is retrieved successfully
    return dispatch => {
        dispatch([{ type: MODAL_DOC_DELETE, payload: docDeleteID }, modalOpenAction()]);
    };
}

और फिर अपने रिड्यूसर में आप इसे नीचे के रूप में एक्सेस करेंगे

case "MODAL_DOC_DELETE":
        return {
            ...state,
            modalTitle: "Delete Document?",
            modalText:
                    "Deleting a document will permanently remove it from S3",
            closeText: "No, Keep Document",
            continueText: "Yes, Delete Document",
            docDeleteId: action.payload
        };
3
Omair Nabiel 29 जुलाई 2019, 21:47