在 React Reducer 中抛出错误是否安全?
Is it safe to throw an Error in a React Reducer?
正如所讨论的 here,似乎 React reducers 必须是纯函数并且从不产生副作用(没有 API 调用改变任何东西)。在无效输入的情况下在减速器中抛出错误是否安全)? (这不是副作用吗?)
不安全。您应该始终在之前进行检查。
例如在中间件中。阻止操作到达减速器并从那里抛出错误。
在减速器中抛出错误安全吗?
this question 的答案指出,如果抛出错误,redux 将不执行任何操作,应用程序将保留之前的状态。
所以,假设实现没有改变,它可能是 安全的(不会造成损害)只要你没有改变以前的状态,纯函数应该永远不会。
依靠投入减速器是好主意吗?
没有。正如您所说,抛出是一种副作用,并且可能无法为它编写错误处理代码。
最好的方法(参见相关问题)可能是捕获减速器内部的错误并更新状态以正确指示它。
正如所讨论的 here,似乎 React reducers 必须是纯函数并且从不产生副作用(没有 API 调用改变任何东西)。在无效输入的情况下在减速器中抛出错误是否安全)? (这不是副作用吗?)
不安全。您应该始终在之前进行检查。
例如在中间件中。阻止操作到达减速器并从那里抛出错误。
在减速器中抛出错误安全吗?
this question 的答案指出,如果抛出错误,redux 将不执行任何操作,应用程序将保留之前的状态。
所以,假设实现没有改变,它可能是 安全的(不会造成损害)只要你没有改变以前的状态,纯函数应该永远不会。
依靠投入减速器是好主意吗?
没有。正如您所说,抛出是一种副作用,并且可能无法为它编写错误处理代码。
最好的方法(参见相关问题)可能是捕获减速器内部的错误并更新状态以正确指示它。