Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/reactjs/23.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Reactjs 预期的Redux创建缩减器_Reactjs_Redux_Reducers - Fatal编程技术网

Reactjs 预期的Redux创建缩减器

Reactjs 预期的Redux创建缩减器,reactjs,redux,reducers,Reactjs,Redux,Reducers,早上好, 在使用redux时,我有以下错误,我已经配置了reducer和操作,我应该修复什么 错误:预期减速器是一个函数。 代码: import {createStore} from "redux"; const initalUser={ IdUtente: 0 }; const store=createStore( initalUser ) function userset(state=initalUser,action,value){

早上好, 在使用redux时,我有以下错误,我已经配置了reducer和操作,我应该修复什么

错误:预期减速器是一个函数。

代码:

import {createStore} from "redux";

const initalUser={
    IdUtente: 0
 };

const store=createStore(
    initalUser
  )

function userset(state=initalUser,action,value){
    switch(action){
        case "Login":
           state=value;
           return state;
        default:
          return state;
    }
}
export function userReducer(idUtente){ 
    store.userset(initalUser,"Login",idUtente);
}
export function getUser(){
    return store.getState();
}

老实说,你在这里做的几乎每件事都是不正确的。
createStore
需要使用reducer调用,而不是初始状态
userset
不会神奇地成为存储的属性,您编写它更像是一个减速机而不是一个动作创建者——但它不是一个有效的减速机(只接受两个参数),并且您在代码中的任何地方都看不到已调度的动作

所以,这需要看起来像

从“redux”导入{createStore};
常量初始化器={
副官:0
};
const store=createStore(
用户减速器
)
函数userReducer(state=initalUser,action){
开关(动作类型){
案例“登录”:
返回动作。有效载荷;
违约:
返回状态;
}
}
导出函数用户集(idUtente){
dispatch({type:“Login”,payload:idute});
}
导出函数getUser(){
返回store.getState();
}
即使这样也不是很典型的redux代码

除此之外:这是一种非常过时的redux风格,我们不建议再教授或学习它


请忽略您现在正在遵循的任何教程,转到官方的redux教程,从头到尾都遵循这两个教程(它们从老式redux开始解释基本原理,然后教您现代redux,这看起来非常不同)。

老实说,您在这里做的几乎所有事情都是错误的。
createStore
需要使用reducer调用,而不是初始状态
userset
不会神奇地成为存储的属性,您编写它更像是一个减速机而不是一个动作创建者——但它不是一个有效的减速机(只接受两个参数),并且您在代码中的任何地方都看不到已调度的动作

所以,这需要看起来像

从“redux”导入{createStore};
常量初始化器={
副官:0
};
const store=createStore(
用户减速器
)
函数userReducer(state=initalUser,action){
开关(动作类型){
案例“登录”:
返回动作。有效载荷;
违约:
返回状态;
}
}
导出函数用户集(idUtente){
dispatch({type:“Login”,payload:idute});
}
导出函数getUser(){
返回store.getState();
}
即使这样也不是很典型的redux代码

除此之外:这是一种非常过时的redux风格,我们不建议再教授或学习它


请忽略您现在正在遵循的任何教程,转到的官方redux教程,从头到尾都遵循这两个教程(它们从老式redux开始解释基础,然后教您现代redux,这看起来非常不同)。

initalUser
是一个对象。。。它应该是一个函数
initalUser
是一个对象。。。这应该是一个函数我是redux的初学者我在网上学习了一系列教程,谢谢你的建议是的,不幸的是有很多非常过时的教程-这就是我链接官方教程的原因-它们是最新的,非常好:)你知道吗,碰巧也有新的视频教程?不,但是如果你想看任何视频教程,请确保这是一个关于“redux工具包”的视频教程,而不仅仅是“redux”。我是redux的初学者,我已经在网上学习了一系列教程,谢谢你的建议,不幸的是,有很多非常过时的教程-这就是我链接官方教程的原因-它们是最新的,非常好:)你知道吗,碰巧也有新的视频教程?没有,但是如果你想看任何视频教程,请确保它是关于“redux工具包”的视频教程,而不仅仅是“redux”。