Reactjs 远程登录redux reducer? 导出默认异步状态=初始状态,操作=>{ 开关动作类型{ //…许多其他案件 案例“A”: 案例“B”: 案例“C”: 案例“D”: 案例“E”: { //调用http请求以记录日志 返回{…状态,isLoadingFlag:true}; } //是的,有默认情况 } }

Reactjs 远程登录redux reducer? 导出默认异步状态=初始状态,操作=>{ 开关动作类型{ //…许多其他案件 案例“A”: 案例“B”: 案例“C”: 案例“D”: 案例“E”: { //调用http请求以记录日志 返回{…状态,isLoadingFlag:true}; } //是的,有默认情况 } },reactjs,react-native,redux,Reactjs,React Native,Redux,我有上面的减速机,使isLoadingFlag为真。我想知道哪一个符合这种情况,所以我要做的是,在reducer中添加一个远程日志功能。但奇怪的是,它竟然把国家搞得一团糟?因为我再也看不到我的装载标志了 我不明白为什么会发生这种情况,因为我们关心的是返回一个状态对象,从理论上讲,即使我们在其中添加远程网络请求,它也应该工作,不是吗 额外资料: 上述设置的原因是我的mac电脑无法在adb模式下检测到华为手机,因此我无法在特定设备上执行调试 在我看来,你应该使用,在那里你可以定义一个故事来听所有的动

我有上面的减速机,使isLoadingFlag为真。我想知道哪一个符合这种情况,所以我要做的是,在reducer中添加一个远程日志功能。但奇怪的是,它竟然把国家搞得一团糟?因为我再也看不到我的装载标志了

我不明白为什么会发生这种情况,因为我们关心的是返回一个状态对象,从理论上讲,即使我们在其中添加远程网络请求,它也应该工作,不是吗

额外资料:


上述设置的原因是我的mac电脑无法在adb模式下检测到华为手机,因此我无法在特定设备上执行调试

在我看来,你应该使用,在那里你可以定义一个故事来听所有的动作,或者为每个动作定义一个故事。试试看。

我认为您必须从函数初始化中删除async,因为还原程序必须同步。在您的例子中,由于异步,reducer返回一个承诺。

Redux的reducer应该是纯函数,而不是异步函数

我认为你们使用减速机的目的是错误的。用于描述应如何根据已调度的操作更改应用程序状态


要进行远程日志记录,请使用或异步调度库,如redux think或redux saga。

Reducer函数应该是纯函数。您可以在actions和dispatch中解析异步操作,也可以使用Redux middlewareredux thunk处理异步操作


请参阅

减速器不用于记录。它是用来更新redux存储的。@codekaizer:当然不是。但我问的是因为根据我的理解,只要我们返回一个新的状态,它应该是正确的只要我们返回一个新的状态,它应该是好的,你有一个默认情况吗?将isLoadingFlag设置为false是什么情况?@codekaizer:我没有包括整个减速器。但谢谢你,因为我已经找到了下面的答案,你是对的!我添加了异步,因为自然添加了等待网络请求。但由于只是一个简单的日志记录,我可以删除等待网络请求。太棒了,谢谢!