2017-02-15 26 views
0

У меня есть несколько действий, которые необходимо использовать с другим действием, более конкретный У меня есть действия для работы с doument и одно действие, чтобы сохранить его, и я не хочу повторить вызов документа сохранения, поэтому я попытался создать свою обертку на mapDispatchToProps и thunk.Redux - Обернуть действия внутри другого действия в mapDispatchToProps

мне нужно каждое действие я перейти к методу выполненного в thunk действий -

От

function changeAction() { 
    return: { 
    type: types.CHANGE 
    } 
} 

Для

function change() { 
    return(dispatch, getState) => { 
     dispatch(changeAction()) 
     saveDocument(getState()); 
    } 
} 

Я попытался создать метод для отображения действий по стуку

export function mapUpdatePresentationsToProps(actions) { 
    const mappedActions = {}; 

    Object.keys(actions).map(action => { 
     mappedActions[action] = function() { 
      return (dispatch, getState) => { 
      dispatch(action) 
      dispatch(updatePresentation(getState())) 
      } 
     } 
    }) 

    return mappedActions; 
} 

И я всегда получаю сообщение об ошибке «Действия должны быть простыми объектами. Используйте специальное промежуточное программное обеспечение для асинхронных действий. ' Я делаю что-то неправильно? Я не знаю, как я могу их отладить. Будем благодарны за любую помощь.

ответ

1

Я думаю, вам нужно изменить:

dispatch(action) 

к чему-то вроде:

dispatch(actions[action]()) 

Прямо сейчас, кажется, что вы пытаетесь послать строку,

+0

Да, ТНХ для быстрого ответа. Позор мне ^^ –

 Смежные вопросы

  • Нет связанных вопросов^_^