Я хочу написать действия для переключения кнопок с помощью angular-redux.Я создал плавающую кнопку, похожую на эту, в угловом значении 4 Fab button
Теперь для написания действий и редуктора для того же самого я создал несколько, но не уверен, правильно ли я это делаютак как я новичок в редуксе, это мой первый редуктор и файлы действий, я совсем не уверен, что я здесь написал.Проверьте следующий код:
fab-button-actions.ts
import { Injectable } from '@angular/core';
import { Action } from 'redux';
import { NgRedux, dispatch } from '@angular-redux/store';
import { IAppState } from '../../../../store/';
import {
AppConfigService,
UIService,
} from '../../../../core/';
import { Subscription } from 'rxjs/Subscription';
/** This actions is used to start and stop the polling for the component
* that needs to dispatch those actions
*
* @example
*
* fabButtonActions
*
*/
@Injectable()
export class FabButtonActions {
/* *
* For Redux
* Use this manage the ACTIONS of the reducer
*/
static readonly ACTIONS = {
OPEN: 'OPEN',
CLOSE: 'CLOSE',
};
/* * @constructor
*
* initializes the FabButtonActions
* initializes the NgRedux<IAppState>
* */
constructor(private ngRedux: NgRedux<IAppState>) { }
/* *
* Dispatches action to fab button reducer
* to open the
*/
openFabMenu() {
this.ngRedux.dispatch({
type: FabButtonActions.ACTIONS.OPEN,
});
}
closeFabMenu() {
this.ngRedux.dispatch({
type: FabButtonActions.ACTIONS.CLOSE,
});
}
}
Fab-button.reducer.ts
import { Reducer } from 'redux';
import { FabButtonActions } from '../actions';
export interface FabButtonState {
fabButtonOpen: boolean;
fabButtonClose: boolean;
}
export const initialFabButtonState: FabButtonState = {
fabButtonOpen: false,
fabButtonClose: false,
};
export const fabButtonReducer: Reducer<FabButtonState> = (
state = initialFabButtonState,
action,
) => {
switch (action.type) {
case FabButtonActions.ACTIONS.OPEN:
return {
...state,
fabButtonOpen: true,
};
case FabButtonActions.ACTIONS.CLOSE:
return {
...state,
fabButtonClose: true,
};
default:
return state;
}
};
Пожалуйста, помогите мне с этим.или руководство с некоторыми действиями, которые будут соответствовать моему примеру.