【发布时间】:2015-05-30 15:32:46
【问题描述】:
我很想将错误数据添加到存储中。例如,
var store = {
error: {msg:'',info:{}},
others: '',
etc: ''
}
在应用程序中出现错误时,操作将通过调度程序更新错误,并且错误面板将显示给用户。错误面板的渲染通过测试错误消息状态有条件地显示 div。
在下一个用户输入时,一个动作,即 userAction,模型状态将由调度程序更新。 问题:仍然会显示错误面板,因为错误消息状态不是“重置”。
userAction 将设置其他非错误状态。 Flux 将针对此更改发出更改。然而,如果我遵循 Flux 模型,也应该在此操作中重置错误,但这会导致发出通知,通知 UI 进行更新。似乎不正确。
我的想法是: 1.不要把这种东西放在店里?要么, 2. store 会为每一次非错误的状态更新重置错误状态。要么, 3. 每个动作还将包含一个用于任何状态更新的错误状态对象。
目前我的解决方案是清除 store 函数中的错误数据:
}, function(payload){
API.setError({msg:'',info:{}});
switch(payload.actionType){
case "BRANCH_SELECTED":
这样做的非惯用方式是什么? 我是 React 和 Flux 的新手,所以我确定这是新手问题。我使用 McFly 作为 Flux 实现。
【问题讨论】:
-
好吧,如果我是一个非白痴以非白痴的方式处理这个问题,我想我可能会定义如何清除或不清除每个操作的错误数据的行为,而不是在注册回调的顶部,用于所有操作。但我经常怀疑我是不是白痴。 :) 存储逻辑可能应该确定应用程序的状态是否错误,除非这是来自服务器的错误,或者来自 JS 中抛出和捕获的错误。
-
您说的是一般错误还是异步类型错误?如果它只是 404 之类的东西,并且您想向用户显示它,您可以只将错误保持在状态。我对 Bootstrap 模态和模态组件做了类似的事情,我只是将错误作为道具传递给模态并显示它。如果您需要做的不仅仅是显示它并响应错误,它可能会更复杂。
-
cmets、fisherwebdev 和 SleepyProgrammer 都让我认为我走的是正确的道路。谢谢!
标签: reactjs reactjs-flux flux