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
}