React native 如何对redux的操作调用操作?

React native 如何对redux的操作调用操作?,react-native,react-redux,redux-thunk,React Native,React Redux,Redux Thunk,我把这一行动称为: <Button style={{ margin: 8, borderRadius: 8 }} icon="check-circle" mode="outlined" onPress={ () => this.props.authenticate(email, password) } > import {REQUEST, RECEIV

我把这一行动称为:

<Button style={{ margin: 8, borderRadius: 8 }}
          icon="check-circle" mode="outlined" 
          onPress={            
          () => this.props.authenticate(email, password)
          }
          >
import {REQUEST, RECEIVED, FAILED, SIGNOUT, apiUrl} from '../types';
import axios from 'axios'

export function authenticate(email, password) {
    return (dispatch, getState) => {
        console.log('authomy');
      dispatch(startAuthentication())
      return axios({
        url: apiUrl('/api/v1/auth/sign_in'),
        method: 'POST',
        data: { email, password }
      }).then(response => {
        const uid = response.headers['uid']
        const client = response.headers['client']
        const accessToken = response.headers['access-token']
        const expiry = response.headers['expiry']
        dispatch(successAuthentication(uid, client, accessToken, expiry))
      }).catch(error => {
        dispatch(doSignout())
      })
    }
  }

  export function signout() {
    console.log('in signout')
    return (dispatch, getState) => {
      const { auth } = getState()
      return axios({
        url: apiUrl('/api/somewhere/sign_out'),
        method: 'DELETE',
        headers: {
          'access-token': auth.accessToken,
          'client': auth.client,
          'uid': auth.uid
        }
      }).then(response => {
        console.log('sent')
        dispatch(doSignout())
        return { type: SIGNOUT }
      }).catch(error => {
        console.log(error)
        dispatch(doSignout())
        return { type: SIGNOUT }
      })
    }
  }

  export function expireAuthentication() {
    return doSignout()
  }

  export function startAuthentication() {
      console.log('dispatch startAuthentication')
    return { type: REQUEST }
  }

  export function successAuthentication(uid, client, accessToken, expiry) {
    return { type: RECEIVED, uid, client, accessToken, expiry }
  }

  function failAuthentication() {
    return { type: FAILED }
  }

  export function doSignout() {
    return { type: SIGNOUT }
  }
我得到一个错误: 操作不能有未定义的“类型”属性。你把常数拼错了吗

我找不到错误的确切位置

所以我添加了AuthAction文件,你需要它,错误在哪里


这里的问题是,您不是从types.js文件导出操作

试试这个:

export const REQUEST = 'auth/REQUEST'
export const RECEIVED = 'auth/RECEIVED'
export const FAILED = 'auth/FAILED'
export const SIGNOUT = 'auth/SIGNOUT'

export const HOST_URL = 'http://192.168.10.196:3000'
export function hostUrl(route) { return HOST_URL + route }
export const API_URL = 'http://192.168.10.196:3000'
export function apiUrl(route) { return API_URL + route }
export const ASSETS_URL = 'http://192.168.10.196:3000'
export function assetsUrl(route) {
    return ASSETS_URL + route 
}

您能在定义操作的地方发布文件吗?从“../redux/actions/AuthActions”导入{startAuthentication,successAuthentication,dosinout,authenticate,logihate};编辑您的问题,重新格式化并发布AuthActions文件。如何添加文件??发布AuthActions文件的内容,类似于您已经发布的内容。
export const REQUEST = 'auth/REQUEST'
export const RECEIVED = 'auth/RECEIVED'
export const FAILED = 'auth/FAILED'
export const SIGNOUT = 'auth/SIGNOUT'

export const HOST_URL = 'http://192.168.10.196:3000'
export function hostUrl(route) { return HOST_URL + route }
export const API_URL = 'http://192.168.10.196:3000'
export function apiUrl(route) { return API_URL + route }
export const ASSETS_URL = 'http://192.168.10.196:3000'
export function assetsUrl(route) {
    return ASSETS_URL + route 
}