Как выполнить эту опору как функцию в операторе if / else? - PullRequest
0 голосов
/ 09 апреля 2019

Я хочу изменить состояние редуктора, если GoogleMap DirectionService возвращает ошибку.Как использовать логику redux-thunk в файле действий redux, если я использую пакетact-google-maps и приложение, получающее данные внутри файла компонента, который использует этот пакет?

componentDidMount() { 
     const DirectionsService = new google.maps.DirectionsService();
     DirectionsService.route({
            //some state
          }, (result, status) => {
            if (status === google.maps.DirectionsStatus.OK) {
              this.setState({
                directions: {...result},
                markers: true
              })
            } else {
              this.props.HOW_TO_EXECUTE_THIS_PROP?;
            }
          });
}

const mapDispatchToProps = (dispatch) => {
    return {
        HOW_TO_EXECUTE_THIS_PROP?: () => dispatch(actions.someAction()),
    }
}

1 Ответ

0 голосов
/ 09 апреля 2019

Как правило, вы сможете просто вызывать метод prop, который вы передаете. Поэтому, если ваш код читает:

const mapDispatchToProps = (dispatch) => {
     return {
         propToExecute: () => dispatch(actions.someAction()),
     }
}

..., тогда вы будете вызывать его внутри вашего componentDidMount как:

this.props.propToExecute();

Однако, поскольку мы используем ES6, давайте отформатируем его правильно, пожалуйста:

const mapDispatchToProps = dispatch => ({
     propToExecute: () => dispatch(actions.someAction())
})
...