Redux actions.merge не стреляет - PullRequest
       31

Redux actions.merge не стреляет

0 голосов
/ 19 декабря 2018

Я пытаюсь заполнить мою реактивно-избыточную форму некоторыми начальными значениями, основанными на объекте, полученном вызовом API.

Что я делаю -> Монтирование компонентов -> ajax вызывает срабатывание (создает объект) -> возвращает обещание -> пытается установить начальные значения формы.

componentDidMount = () => {
    retrieveIrfItems(this.props.selected.Id).then((item) => {
        console.log(item);
        this.props.setDefaultFields(item[0]);
    });
}

Я проверил почти все урокитам, и это то, что я пытался ->

const mapDispatchToProps = (dispatch) => ({
    checkToken: token => dispatch(checkToken(token)),
    changeField: (model, e) => dispatch(actions.change(model, e)),
    setDefaultFields: (values) => actions.merge('editItem', values)
});

setDefaultFields никогда не срабатывает.Без ошибок, без изменений.Любые советы?

Ответы [ 2 ]

0 голосов
/ 19 декабря 2018

Вы создали карту setDefaultFields: (values) => actions.merge('editItem', values), но не отправили ее, ваше действие достигает Редуктора только тогда, когда вы отправляете .

enter image description here

внесите это изменение, чтобы отправить его

setDefaultFields: (values) => dispatch(actions.merge('editItem', values))

Также не забудьте использовать mapDispatchToProps в соединении

export default connect(mapStateToProps,mapDispatchToProps)(yourcomponent);
0 голосов
/ 19 декабря 2018

Похоже, вы забыли отправить

const mapDispatchToProps = (dispatch) => ({
    checkToken: token => dispatch(checkToken(token)),
    changeField: (model, e) => dispatch(actions.change(model, e)),
    // NB next line
    setDefaultFields: (values) => dispatch(actions.merge('editItem', values))
});

Кстати, вы можете предоставить объект как mapDispatchToProps

const mapDispatchToProps = {
  checkToken,
  changeField: actions.change,
  setDefaultFiels: values => actions.merge('editItem', values)
}
...