Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/extjs/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript React native w/redux:分派不是一个函数_Javascript_React Native_React Redux - Fatal编程技术网

Javascript React native w/redux:分派不是一个函数

Javascript React native w/redux:分派不是一个函数,javascript,react-native,react-redux,Javascript,React Native,React Redux,我试图在我的项目中实现以下示例: 但我一直遇到这样的错误:分派不是功能 从我的actions类执行分派函数时 似乎Dispatcher没有传递给我的操作,但我遵循了示例中的流程: actions/index.js文件: export const REQUEST_LOCAL_POSTS = 'REQUEST_LOCAL_POSTS'; export const RECEIVE_LOCAL_POSTS = 'RECEIVE_LOCAL_POSTS'; export const REQUES

我试图在我的项目中实现以下示例:

但我一直遇到这样的错误:分派不是功能 从我的actions类执行分派函数时

似乎Dispatcher没有传递给我的操作,但我遵循了示例中的流程:

actions/index.js文件:

    export const REQUEST_LOCAL_POSTS = 'REQUEST_LOCAL_POSTS';
export const RECEIVE_LOCAL_POSTS = 'RECEIVE_LOCAL_POSTS';
export const REQUEST_CURRENT_LOCATION = 'REQUEST_CURRENT_LOCATION';
export const RECEIVE_CURRENT_LOCATION = 'RECEIVE_CURRENT_LOCATION';


export const requestCurrentLocation = () => ({
    type: REQUEST_CURRENT_LOCATION
})

export const receiveCurrentLocation = currentLocation => ({
    type: RECEIVE_CURRENT_LOCATION,
    currentLocation,
    receivedCurrentLocationAt: Date.now()
})

export const requestLocalPosts = () => ({
    type: REQUEST_LOCAL_POSTS
})

export const receiveLocalPosts = json => ({
    type: RECEIVE_LOCAL_POSTS,
    posts: json,
    receivedAt: Date.now() 
})

export const fetchLocalPosts = dispatch => {
    dispatch(requestCurrentLocation())
    navigator.geolocation.getCurrentPosition(
      (position) => {
         dispatch(requestLocalPosts()) // getting dispatch is not a function here
        return fetch(`http://192.168.1.3:9000/posts?lng=${position.coords.longitude}&lat=${position.coords.latitude}&radius=1000`)
    .then(response => response.json())
    .then(json => dispatch(receiveLocalPosts(json)))

      },
      (error) => this.setState({ error: error.message }),
      { enableHighAccuracy: true, timeout: 20000, maximumAge: 1000 },
    )
home.js(组件):


fetchLocalPosts
应该返回一个以
dispatch
为参数的函数。将其更改为以下内容应该可以修复它

export const fetchLocalPosts = () => dispatch => {
  ...
这是另一种方法:

export const fetchLocalPosts = () => {
    return function (dispatch) {
      ...

谢谢,这真的帮了我的忙!没有意识到我应该返回一个函数。
export const fetchLocalPosts = () => dispatch => {
  ...
export const fetchLocalPosts = () => {
    return function (dispatch) {
      ...