如何在React本机应用程序的Redux表单中获取当前位置?

时间:2019-07-03 08:44:06

标签: react-native redux redux-form

我正在创建React Native应用,我需要在其中创建一个包含一些字段的表单并使用当前位置和地址字段以及相机进行地图映射。我正在为此使用Redux-form。

我创建了一个单独的reducer以进行地理位置定位。我使用redux-thunk作为异步动作创建者。 &尝试将地理位置状态作为初始值传递给使用redux-form的主表单,但出现错误“最大更新超出错误”

这是我的地理位置创建者。 :

export const getCurrentLocation = () => {
  return dispatch => {
    const geolocation = navigator.geolocation;
    geolocation.getCurrentPosition((position) => {
        console.log(position.coords);
        dispatch({
            type: GET_LOCATION,
            payload: {
                lat: position.coords.latitude,
                long: position.coords.longitude
            }
        });
    });
  }
}

位置减少器:

export const getLocationReducer = (oldState = initialState, action) =>       {
   if(action.type === 'GET_LOCATION')
   {
     return oldState;
   }
  return oldState;
  }

存储配置:

const rootReducer = combineReducers(
{
    changeSlideReducer: changeSlideReducer,
    slideReducer: slideReducer,
    formReducer : requestSubmitReducer,
    location :getLocationReducer,
    form : FormReducer
});

export default store = createStore(rootReducer, applyMiddleware(thunk));

&最后是我已设置好初始值的表格:

const mapStateToProps = (state, props) => ({
   initialValues: state
})

export default connect(mapStateToProps)(reduxForm(
   {
     form: 'RequestForm', 
     enableReinitialize: true
  })
 (RequestForm));

我想要当前位置,并且该位置应显示在地图上和地址栏中。 但我收到此错误: 不变式:超出最大更新深度

0 个答案:

没有答案