React Redux не ловит рассылку - PullRequest
0 голосов
/ 17 декабря 2018

Я боролся с этим пару часов и не могу найти решение
Когда я нажимаю кнопку, вызывается функция "getLocation" (Проверено)
Но отправка не передается редуктору
Из аналогичных потоков я узнал, что это может быть потому, что getLocation является функцией, а значение props устанавливается как функция.Есть ли способ вызвать эту функцию или любую другую возможность сделать хранилище диспетчерских вызовов?Ниже мой код:

actions / geolocationAction.js

export function getLocation() {
    const geolocation = navigator.geolocation;
    return dispatch =>
        geolocation.getCurrentPosition((position) => 
        {
            dispatch({
                type: GET_LOCATION,
                latitude: position.coords.latitude,
                longitude: position.coords.longitude
             });
        });
}

Кнопка местоположения

class LocationButton extends Component {
    render() {
        return (
            <div>
                <button onClick = { this.props.locationReceived } >Geo</button>
            </div>
        );
    }
}

const mapDispatchToProps = dispatch => ({
    locationReceived: () => dispatch(getLocation())
});

export default connect(null, mapDispatchToProps)(LocationButton);

geolocationReducer

const geolocationReducer  = (state = initialState, action) => {
    switch(action.type){
        default:
            return state;
    }
};

export default geolocationReducer;

и редуктор index

export default combineReducers({
   location: geolocationReducer
});

Если бы вы могли дать мне какой-нибудь совет, как решить эту проблему, я был бы очень благодарен

1 Ответ

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

Прямо сейчас вы не проверяете geolocation.getCurrentPosition обратный вызов ошибки.Попробуйте вернуть пустой бланк, который не использует geolocation.getCurrentPosition и просто возвращает отправку с некоторыми примерами данных.Если это работает, включите функцию обратного вызова для аргумента ошибки и отправьте действие, например GET_LOCATION_ERROR, с переданной ошибкой.

...