Я хочу создать многократно используемый модуль таблицы редукции, который будет хранить и обновлять номер страницы, отображаемые страницы и т. Д., Которые я могу разделить между всеми моими страницами.Прослушивание действия redux
Однако мне нужны действия по обновлению, чтобы вызвать действие refreshdata, которое будет зависеть от другой конечной точки в зависимости от страницы.
Так что, возможно, что-то в соответствии с конкретными страницами прослушивает действие «RefreshData», а затем запускает другое действие. Что было бы лучшим способом добиться этого? В настоящее время я использую утилизацию для моего промежуточного программного обеспечения, но смотрю на саму спасик.
Каков наилучший способ достичь этого?
** Для уточнения **
У меня есть таблицы на несколько страниц/проектов, и я хочу, чтобы свести к минимуму дублирования кода. Я думал, что мог бы сделать модуль droppable redux (action + reducer), а затем просто указать обработчик для действия REFRESH_DATA отдельно, поэтому мне не нужно было бы устанавливать ключи в этот файл. Я думаю, с помощью redux-saga я мог бы прослушивать действие REFRESH_DATA и иметь переключатель в зависимости от текущей страницы? Или любые лучшие предложения.
export const ITEMS_PER_PAGE_UPDATED = 'ITEMS_PER_PAGE_UPDATED'
export const CURRENT_PAGE_UPDATED = 'CURRENT_PAGE_UPDATED'
export const REFRESH_DATA = 'REFRESHDATA'
export const DATA_REFRESHED = 'REFRESHDATA'
export function currentPageUpdated(value) {
return function (dispatch) {
dispatch({
type: CURRENT_PAGE_UPDATED,
value
})
dispatch({type:REFRESH_DATA})
}
}
export function itemsPerPageUpdated(value) {
return function (dispatch) {
dispatch({
type: ITEMS_PER_PAGE_UPDATED,
value
})
dispatch({type:REFRESH_DATA})
}
}
function reducer(state={ pageNumber:1, pageSize:10, totalItems:0, totalPages:1, sortColumn:null, sortAscending:true }, action) {
switch(action.type) {
case ITEMS_PER_PAGE_UPDATED:
return Object.assign({}, state, {pageSize: action.value, pageNumber:1})
case CURRENT_PAGE_UPDATED:
return Object.assign({}, state, {pageNumber: action.value})
case DATA_REFRESHED:
return Object.assign({}, state, {totalPages: action.values.totalPages, totalItems:action.values.totalItems})
default:
return state
}
}
export default reducer
Ваш вопрос немного неясен для меня. Не могли бы вы привести более технический или структурированный пример? –
@TanerTopal Я добавил дополнительную информацию – Tom
Мне нужно будет добавить больше кода для сортировки и т. Д. – Tom