React Redux没有赶上调度

时间:2018-12-17 02:33:45

标签: javascript reactjs redux react-redux redux-thunk

我已经为此苦苦挣扎了两个小时,但找不到解决方法
当我按下按钮时,正在调用功能“ getLocation”(选中)
但是调度没有传递给reducer
从类似的线程中,我发现可能是因为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 :(得分:1)

现在,您无需检查geolocation.getCurrentPosition错误回调。尝试返回一个不使用geolocation.getCurrentPosition的空白thunk,仅返回带有一些示例数据的调度。如果可行,请为error参数包含一个回调,并使用已传递的错误调度GET_LOCATION_ERROR之类的操作。