reactjs - componentWillReceiveProps() 不会重新触发发送新的道具
问题描述
我对做出反应还很陌生,我开始对构建自己的设计、访问 api 等感到满意......
我正在尝试显示注册页面的错误,并且我正在设置一个本地存储变量,其值是 django-rest-auth 在错误数据中返回的字符串。该部分工作正常(但是,如果您可以帮助我找到一种更有效/更直接的方法来从错误字符串中提取消息,将不胜感激。)
在我的注册组件中,使用 componentWillReceiveProps,然后我将组件的本地错误变量的状态设置为本地存储的错误变量的值。(再次,我知道这是一种糟糕的方法)
componentWillReceiveProps() {
const success = localStorage.getItem("signupSuccess");
if (success !== null) {
this.setState({ hasError: true });
const usernameError = localStorage.getItem("usernameError");
const emailError = localStorage.getItem("emailError");
const password1Error = localStorage.getItem("password1Error");
const password2Error = localStorage.getItem("password2Error");
this.setState({ usernameError: usernameError });
this.setState({ emailError: emailError });
this.setState({ password1Error: password1Error });
this.setState({ password2Error: password2Error });
}
localStorage.removeItem("usernameError");
localStorage.removeItem("emailError");
localStorage.removeItem("password1Error");
localStorage.removeItem("password2Error");
console.log(localStorage.getItem("usernameError"));
}
主要问题是,如果错误发生变化(由于更正、新问题等......),错误不会在 Signup 组件中更新,我认为这是因为我选择了生命周期方法。
有人可以解释 componentWillReceiveProps 或我的任何一般误解吗?另外我应该使用什么生命周期方法,以便每次重新提交时它都会不断更新?
谢谢
解决方案
推荐阅读
- javascript - 将多个数据数组附加到数据点
- javascript - 如何在完全加载 DOM 之前加载 JS 文件?
- php - Netbeans 8.2 中的大写布尔值
- sql - 我想与“_1”、“_2”、“_3”一起更新工作......我该怎么办?
- sass - 以编程方式创建 Sass 映射
- mysql - MySQL 查询【二表】
- google-apps-script - 创建数据工作室插件 - 我如何使用 oauth2“客户端凭据”
- shopify - 在 Shopify 中隐藏 API 凭据?
- html - 宽度网页没有填满屏幕
- string - cython - 从 numpy 数组操作字符串