gpt4 book ai didi

reactjs - 操作必须是普通对象。使用自定义中间件

转载 作者:行者123 更新时间:2023-12-03 13:43:49 25 4
gpt4 key购买 nike

我正在使用 Redux、redux-thunk 和 React。我正在返回一个对象,但仍然收到错误。

authActions.js

export function register(){
return (dispatch)=>{
console.log("in register action");
dispatch({type:'auth_user'})
}
}

使用 connect 和 props 从 Register.js 调用此操作

import  * as actions  from '../actions/authActions';

class RegisterForm extends React.Component{

handleRegister = (e)=>{
e.preventDefault();
console.log("inside handle register");
console.log(this.props);
this.props.register();
}
}
var Register = connect(mapStateToProps,actions)(RegisterForm);

错误是

操作必须是普通对象。使用自定义中间件进行异步操作。

编辑 1

实现了如下的 redux-thunk。

import thunk from 'redux-thunk';


const store = createStore(authReducer,applyMiddleware(
thunk,
loggerMiddleware
),window.__REDUX_DEVTOOLS_EXTENSION__ && window.__REDUX_DEVTOOLS_EXTENSION__());


ReactDOM.render(
<Provider store={store}>
<App />
</Provider>,
document.getElementById('root'));

可以使用链接在 github 上找到代码 https://github.com/abhikulshrestha22/social-network/tree/master/client

最佳答案

您正在使用 mapDispatchToProps 中的注册:

this.props.register();

但这只是:

var Register = connect(mapStateToProps,actions)(RegisterForm);

因此,调用 register 不起作用,因为它在操作中,actions.register:

var Register = connect(mapStateToProps,{register: actions.register})(RegisterForm);

现在,它应该可以解决您的问题。

关于reactjs - 操作必须是普通对象。使用自定义中间件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52799687/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com