我让我的redux商店正常工作,但前提是我将商店导入到动作创建者文件中,并从动作创建者调用store.dispatch()
。显然,调用store.dispatch()
不是一个好习惯,如果我将函数正确连接到商店,那么我可以直接调用dispatch()
而不是store.dispatch()
。就是说,当我尝试仅使用dispatch()
时,出现错误:“找不到变量:调度”。
我的最佳猜测是,我的问题是我在此代码底部未正确使用Redux的connect()函数:
import React, {useState} from 'react' import { connect } from 'react-redux' import { StyleSheet, View, Text, TextInput, Image, TouchableOpacity } from 'react-native'; import { signup } from '../../actions/authAction' const ApprovedScreen = () => { const [email, setEmail] = useState('') const [password, setPassword] = useState('') return ( <View> <TextInput style={styles.textInput} value={email} onChangeText={text=>setEmail(text)} /> <TextInput value={password} onChangeText={text=>setPassword(text)} /> <TouchableOpacity onPress={()=>signup({email, password})}> <Text>Create An Account</Text> </TouchableOpacity> </View> ) } export default connect(null, { signup })(ApprovedScreen)
这是{signup}功能代码:
import axios from 'axios'
import { LOG_IN } from './types'
export function signup ({email, password}) {
console.log('singup function ran')
axios
.post('https://MYAPI.com/signup', {email, password})
.then(response => dispatch({
type: LOG_IN,
payload: response.data.token
}))
.catch(error => {
console.log(error)
})
}
我让我的redux商店正常工作,但前提是我将商店导入到动作创建者文件中,并从动作创建者调用store.dispatch()。显然,调用store.dispatch()不是一个好习惯,并且...
由于您正在使用redux-thunk,因此该操作需要返回另一个函数,该函数以dispatch
作为参数: