Вызов функции actionCreator не работает через bindActionCreators - PullRequest
0 голосов
/ 18 мая 2018

Я прикрепляю dispath с помощью actionCreator, как показано ниже

function mapDispatchToProps(dispatch) {

  return {
    actions: bindActionCreators(Object.assign({},basicActions), dispatch)
  }
}

export default connect(mapStateToProps, mapDispatchToProps)(NewClientSetup);

, и вызываю функцию actionCreator, как это

componentCallback:text => actions(basicActions.selectOption(text))

, это basicActions.js

export function selectOption(text){
    debugger;
    const actionObj = {
        type: types.SELECT_OPTION,
        id: nextActionId++,
        text
    };
    return actionObj;
}


export function requestSuccess(){
    console.log('inside requestSuccess');
    return {type:'SUCCESS',id:1}
}

export function fetchS1Users(parentUserId){
debugger;
    axios.get(url, {
        params: {
          parentUserVal: parentUserId
        },
        responseType: 'json'
      })
      .then(function (response) {
        console.log('res '+response.data);
        console.log('res JSON '+JSON.stringify(response.data));
      })
      .catch(function (error) {
        console.log(error);
      });

    return {
        id: nextActionId++,
        type: types.FETCH_USERS,
        inputParam: parentUserId,
        s1users:{}
    }
}

, новыдает ошибку «Uncaught TypeError: actions - это не функция»

это работает, хотя

 actions: bindActionCreators(basicActions.selectOptions, dispatch)

1 Ответ

0 голосов
/ 18 мая 2018

Как только вы использовали bindActionCreators для привязки действий, вы можете использовать их из реквизита и не вызывать действия как функцию, такую ​​как

this.props.actions.selectOption()

...