reactjs - 即使 props 未更改,我如何知道是否在 redux 中调用了调度?
问题描述
我有一个登录页面,我在提交表单时将登录详细信息发送到服务器。
服务器使用访问令牌或错误消息进行响应。
在这两种情况下,我分别调度 loginSucess 或 loginFailure 并将 isLoggedIn 属性设置为相应的状态。
componentDidUpdate(prevProps: any) {
// if (hasPropChanged("isLoggedIn", this.props, prevProps)) {
const { isLoggedIn } = this.props;
if (isLoggedIn) this.props.history.push("/admin");
else {
notification.open({
message: "Login error",
description: "Invalid login credentials"
});
}
// }
}
但问题是,如果用户第一次发送无效凭据,商店更新,我可以在前端显示通知。但是当 isLoggedIn 属性未更改时(用户连续多次发送无效凭据)组件不会重新渲染或再次更新。如何检测何时收到 api 响应并调用 dispatch?并相应地显示通知。
解决方案
您需要一个额外的道具(通常称为error
或类似的)来模拟这种状态。然后它非常简单,您可以设置error
为 true 或保存带有错误消息的字符串。或者,显示来自您的 redux 操作的通知,而不是来自组件的通知。
推荐阅读
- python - 我需要编辑具有非常量结构的文本文件。尝试使用 pandas,这是完成这项工作的最佳工具吗?
- php - PHP preg_match 与 ctype_
- c# - 如何在 .xaml 中制作一个简单的 ContentDialog?
- javascript - 这两个代码有什么区别?
- spring - Spring Hibernate JPA Java8 OffsetTime
- rest - 如何在 YouTrack 中通过 REST 访问用户通知?
- ios - 插座检测不起作用时要检查什么?
- go - 如何找出 golang 频道的目的地
- c++ - OnPaint MFC 上未显示矩形
- laravel - 明确定义路线时,Laravel'Route Not Defined'