在没有bindActionCreator

时间:2017-07-25 14:50:09

标签: react-native redux react-redux

我想将用户的GPS位置存储在我的redux-store中。为了得到这些坐标,我用这个:

navigator.geolocation.watchPosition( (data) => {
  //
}, null, {
    timeout: 60000,
    distanceFilter: 10
});

我有一个位置减速器:

import createReducer from '../lib/createReducer'
import * as types from '../actions/types'

export const position = createReducer({}, {
  [types.SET_POSITION](state, action) {
    return {
        latitude: action.latitude,
        longitude: action.longitude
    };;
  }
})

并采取行动:

import * as types from './types'

export function watchPosition() {
  return (dispatch, getState) => {

        ???
  }
}

export function setPosition({ latitude, longitude }) {
  console.log('JA');
  return {
    type: types.SET_POSITION,
    latitude,
    longitude
  }
}

我想在我的主屏幕中初始化这个watchPosition。我没有绑定那里的动作(没有connect())。

如何在新职位可用时调用此操作并启动reducer?

1 个答案:

答案 0 :(得分:1)

您可以在您的commponent或其他执行代码处导入您的商店对象,然后使用store.dispatch(() => { return{ type: ACTION_TYPE, payload: data } })

或者您可以使用reduxThunk中间件触摸商店:store.dispatch({ type: ACTION_TYPE, payload: data })

希望这能帮到你