Javascript Redux-操作被调度,但不';我不能用减速器
我遇到了一个奇怪的问题,我正确地调度了一个动作,但是没有调用减速机。我正在使用redux thunk,所有设置都与我的其他项目中的设置完全相同。动作类型匹配,但什么也没有发生 另外,如果我将console.log放在reducer的默认情况下,每次刷新页面时它都会被记录4次,因此我认为reducer加载正确Javascript Redux-操作被调度,但不';我不能用减速器,javascript,reactjs,redux,Javascript,Reactjs,Redux,我遇到了一个奇怪的问题,我正确地调度了一个动作,但是没有调用减速机。我正在使用redux thunk,所有设置都与我的其他项目中的设置完全相同。动作类型匹配,但什么也没有发生 另外,如果我将console.log放在reducer的默认情况下,每次刷新页面时它都会被记录4次,因此我认为reducer加载正确 export const submitForm = names => { console.log(names); //This logs what it's supposed to
export const submitForm = names => {
console.log(names); //This logs what it's supposed to log every time
// I press the submit button
return dispatch => {
dispatch({
type: "SUBMIT_FORM",
names
});
};
};
export default function form(state = {}, action) {
switch (action.type) {
case "SUBMIT_FORM":
console.log(action.names);
return Object.assign({}, state, {
names: action.names
});
default:
return state;
}
}
//My component is connected like this:
const mapStateToProps = state => ({});
const mapDispatchToProps = dispatch => ({
formActions: bindActionCreators(formActions, dispatch)
});
export default connect(mapStateToProps, mapDispatchToProps)(Home);
对我来说,
动作创建者
返回函数似乎有点奇怪<代码>动作创建者通常返回
动作,即对象
<代码>异步操作创建者返回函数
。因此,您可以尝试重构操作创建者
,它将返回objetct
,然后将操作创建者作为参数传递给调度
export const submitForm=names=>{
console.log(names);//这会记录每次应该记录的内容
//我按下提交按钮
返回{
键入:“提交表格”,
名字
}
};
派遣(提交表格(姓名));
此外,根据mapDispatchToProps
中的使用bindActionCreators
,mapDispatchToProps
不返回对象,而是返回bindActionCreators
const mapDispatchToProps=dispatch=>
bindActionCreators(格式、调度);
另一点,如果您需要将参数传递给您的操作创建者
,我会这样做:
const mapDispatchToProps=dispatch=>({
submitForm:(名称)=>分派(submitForm(名称))
});
不幸的是,我看不到你所有的代码。我希望我帮了你一些忙。console.log(action.names);请共享此行的结果。它不会记录任何内容。我也尝试了console.log(“test”),但它仍然没有记录任何内容。如果
reducer
在初始加载时加载,并且您遇到了这个问题,您可能需要检查reducer
中的action
参数console.log(名称)是否被调用,以及如何使用提交表单函数,如何连接组件?您需要将这些添加到问题中。如果我记录操作参数,将记录这些内容。我想这是对的?我正在使用名为thunk
的中间件,它使返回函数而不是操作成为可能。调度是该库的一部分。我尝试只返回操作以排除中间件的问题,但没有成功。我知道redux-thunk
。使用redux thunk
可以返回函数
而不是对象
,并且该函数
不需要像reducers函数那样纯粹。我说这很奇怪,无缘无故地使用异步操作创建者。我希望现在对你来说已经足够了:)所有这些都很好,但它实际上与我的问题无关,也不能解决任何问题。我的应用程序的这一部分工作正常,而且一直都是这样。