Привет всем . После использование thunk прочитал про
Redux-saga — это альтернативный подход к организации сайд-эффектов. Вместо того, чтобы диспатчить функции, которые обрабатываются redux-thunk-ом, вы создаёте сагу, которая собирает всю логику обработки внутрь себя. В отличие от thunk-ов, которые выполняются, когда вы их диспатчите, саги запускаются при старте приложения и как бы «работают в фоне». Саги слушают все экшены, которые диспатчит стор, и решают, что делать с ними.
И у саг в редаксе два преимущества по сравнению с thunk-ами: — Они позволяют организовывать сложные последовательности сайд-эффектов — И они очень легко тестируются
Хочу применить Redux-saga
function loadApi() {
return new Promise((resolve, reject) => {
setTimeout(() => {
resolve(resolve('1 sec'));
}, 3000);
});
}
// worker Saga: будет запускаться на экшены типа `USER_FETCH_REQUESTED`
function* fetchUser(action) {
try {
const msg = yield call(loadApi);
yield put({type: "ACTIVATE_GEOD", title: msg});
}catch(e){
console.log('error')
yield put({type: "USER_FETCH_FAILED", title: msg});
}
}
function* mySaga() {
yield takeEvery("ACTIVATE_GEOD", fetchUser);
}
ну и привязка Saga:
const sagaMiddleware = createSagaMiddleware();
function configureStore(initialState = {}) {
const store = createStore(
reducers,
initialState,
applyMiddleware(sagaMiddleware)
//Redux middleware provides a third-party extension
point between dispatching an action, and the moment it reaches the reducer. //Redux middleware is nothing more than a function which is invoked after an action is dispatched but before a reducer takes care of the action //applyMiddleware(ping) ) return store; }; var store = configureStore();
sagaMiddleware.run(mySaga);
Теперь когда кликаю по кнопке
<button onClick={() =>this.props.dispatch(
{ type: 'ACTIVATE_GEOD', title: 'UPS SAGA' } )}>
REDUX-SAGA Click Me!
</button>
function mapDispatchToProps(dispatch) {
return bindActionCreators({activateGeod, closeGeod}, dispatch)
}
Получаю ошибку
_this2.props.dispatch is not a function Помогите мне пожалуйста получить рабочий пример от SAGA чтобы я смог дальше использовать его мозможности .
Виртуальный выделенный сервер (VDS) становится отличным выбором
Здравствуйте, собираемся делать прототип приложения, где нужно визуализировать графики и таблицыПриложение одностраничное
при открытии диалога он располагается в центре страницы, те