मैं अपने प्रोजेक्ट में redux-saga का उपयोग करना चाहता हूं और जब मैं store.js फ़ाइल में परिवर्तन करता हूं तो redux-saga स्थापित करने के बाद यह त्रुटि देता है

त्रुटि: ऐसा लगता है कि आप स्टोर () बनाने के लिए कई स्टोर एन्हांसर पास कर रहे हैं। यह समर्थित नहीं है। इसके बजाय, उन्हें एक ही समारोह में एक साथ लिखें।

# store.js                     
import { createStore, applyMiddleware, compose } from 'redux';
import { composeWithDevTools } from 'redux-devtools-extension';
import thunk from 'redux-thunk';
import rootReducer from './reducers'
import createSagaMiddleware from 'redux-saga';
import rootSaga from './actions/sagas';


const sagaMiddleware = createSagaMiddleware();

const composeEnhancers =
  typeof window === 'object' &&
  window.__REDUX_DEVTOOLS_EXTENSION_COMPOSE__ ?   
    window.__REDUX_DEVTOOLS_EXTENSION_COMPOSE__({
      // Specify extension’s options like name, actionsBlacklist, actionsCreators, serialize...
    }) : compose;


const enhancer = composeEnhancers(
  applyMiddleware(sagaMiddleware)
);



const initialState = {};

const middleware = [thunk];

const store = createStore(
  rootReducer,
  initialState,
  enhancer,
  composeWithDevTools(applyMiddleware(...middleware))
);
  


sagaMiddleware.run(rootSaga);
export default store; 

मुझे दुकानों के बारे में ज्यादा जानकारी नहीं है। कृपया देखें कि क्या आप मदद कर सकते हैं।

0
zinx 6 पद 2020, 08:57

1 उत्तर

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

आप दो बार अपने devtools और मिडलवेयर की रचना कर रहे हैं, दोनों में से केवल एक का उपयोग करें।

const store = createStore(
  rootReducer,
  initialState,
// either this line
  enhancer,
// or this line
  composeWithDevTools(applyMiddleware(...middleware))
);

इसके अलावा, सिर्फ FYI करें: यह redux की काफी पुरानी शैली है। यदि आप अभी रेडक्स सीख रहे हैं और इस दृष्टिकोण का पालन करते हैं, तो आप बहुत सारे अनावश्यक बॉयलरप्लेट लिखेंगे। आप जिस भी ट्यूटोरियल से सीख रहे हैं उसके बजाय कृपया आधिकारिक redux ट्यूटोरियल का पालन करें आधिकारिक redux दस्तावेज़ अभी से ही।

1
phry 6 पद 2020, 09:51