【发布时间】:2020-06-15 12:26:34
【问题描述】:
正如here 所讨论的,React reducer 似乎必须是纯函数并且永远不会产生副作用(没有 API 调用会改变任何东西)。如果输入无效,在减速器中抛出错误是否安全)? (这不被认为是副作用吗?)
【问题讨论】:
标签: reactjs use-reducer
正如here 所讨论的,React reducer 似乎必须是纯函数并且永远不会产生副作用(没有 API 调用会改变任何东西)。如果输入无效,在减速器中抛出错误是否安全)? (这不被认为是副作用吗?)
【问题讨论】:
标签: reactjs use-reducer
this question 的回答指出,如果抛出错误,redux 将不做任何事情,应用程序将保持之前的状态。
所以,假设实现没有改变,它可能是安全(不会造成损害),只要你没有改变以前的状态,纯函数不应该这样做。
没有。正如您所说,抛出是一种副作用,可能无论如何都无法为其编写错误处理代码。
最好的方法(见链接的问题)可能是在 reducer 中捕获错误并更新状态以正确指示它。
【讨论】:
这不安全。你应该总是做你的检查之前。
例如在中间件中。阻止动作到达减速器并从那里抛出错误。
【讨论】: