Javascript React Redux Chrome扩展获取操作类型未定义的错误
我们已经使用react-chrome-redux在react-redux上构建了chrome扩展,请参见: 我正在尝试发送操作并进行http调用。我们正在使用axios。我们收到一个错误:Javascript React Redux Chrome扩展获取操作类型未定义的错误,javascript,reactjs,redux,react-redux,Javascript,Reactjs,Redux,React Redux,我们已经使用react-chrome-redux在react-redux上构建了chrome扩展,请参见: 我正在尝试发送操作并进行http调用。我们正在使用axios。我们收到一个错误:操作可能没有未定义的“type”属性 在react chrome redux库包中,有一个用来模拟thunk功能的调用,dispatchResponder,但我不理解它。我发送了我的操作,但连续获取的操作类型未定义错误请参见: 这是组件中的分派。有一个handleChange函数,它通过一些验证用用户的输入值(
操作可能没有未定义的“type”属性
在react chrome redux库包中,有一个用来模拟thunk功能的调用,dispatchResponder
,但我不理解它。我发送了我的操作,但连续获取的操作类型未定义错误请参见:
这是组件中的分派。有一个handleChange函数,它通过一些验证用用户的输入值(电子邮件、密码)更新状态
handleLogin = (event) => {
event.preventDefault();
const { email, password } = this.state;
if (email && password) {
this.props.login(email, password);
}
}
....
function mapDispatchToProps(dispatch) {
return {
login: function (email, password) {
dispatch(login(email, password))
}
}
}
/**
* @property {object} classes
* @property {object} theme
* @property {object} user - User logging in
* @property {object} login - authentication attempt
*/
Login.propTypes = {
classes: PropTypes.object.isRequired,
theme: PropTypes.object.isRequired,
user: PropTypes.object.isRequired,
login: PropTypes.func.isRequired,
};
export default connect(mapStateToProps, mapDispatchToProps)(withStyles(styles, { withTheme: true })(Login));
这是通过login
export function login(email, password) {
return dispatch => {
dispatch(request(email));
const data = { "email": email, "password": password };
const login = axios({
// make post request to auth service
});
login.then(
response => {
localStorage.setItem("user", JSON.stringify(response.data));
dispatch(success(response.data));
},
error => {
dispatch(failure(error));
dispatch(alertActions.error(error.message));
}
);
};
function request(email) { return { type: types.LOGIN_REQUEST, email } }
function success(user) { return { type: types.LOGIN_SUCCESS, user } }
function failure(error) { return { type: types.LOGIN_FAILURE, error } }
}
还有我的减速机。减速器已正确导入减速器/index.js文件
import * as types from "../constants/constants";
import * as actions from "../actions/authActions";
let user = JSON.parse(localStorage.getItem('user'));
const initialState = user ? { loggedIn, user, loading } : {};
export default (state = initialState, action) => {
switch (action.type) {
case types.LOGIN_REQUEST:
return {
...state,
loading: true,
};
default:
return state;
}
};
。/constants/constants
中的内容是类型。是否定义了登录请求?您是否在包含登录功能的文件中正确导入了它?。/constants/constants
是我的操作类型。因此,我将常量导入为类型
,并将其称为类型。登录请求
。登录请求在这里定义export const LOGIN\u REQUEST=“LOGIN\u REQUEST”
这个特殊的代码组织,即使用常量作为我的动作类型,是从我一直在寻找的一个样板文件中获取的。如果在动作创建者中我返回类似于返回{type:types.LOGIN\u REQUEST,email}
的内容,则没有错误。我想在action Creator中我的dispatch=>
出现了一些问题。您是否尝试过在Chrome中使用断点对其进行调试,以查看action的内容?