单击按钮时,this.state始终为空字符串



以下内容总是在点击按钮时返回一个空字符串

class Login extends Component {
constructor(props) {
super(props);
this.state = {
emailAddress: ""
};
}
loaddata = async () => {
let jiraURL = "";
let emailres = OTGWindowHelper.GetData();
let _settingsRes = OfficeClass.GetLocalData("user-credentials");
let userURLRes = Utils.getUserURL();
let [userURL, emailData, _settings] = await Promise.all([userURLRes, emailres, _settingsRes]);
.
.
.
//here i am setting the emailAddress
this.setState({emailAddress:emailData.EmailAddress})
// if i add console.log(this.state.emailAddress) i can clearly see the result
}
componentDidMount() {
this.loaddata();
}
validateURL = (event) => {
let userEmailAddress = this.state.emailAddress; // here is always empty
}
render (){
return (
<LoginFooter disabled={this.state.disableContinueButton} clicked={this.validateURL} />
)
}

发生这种情况的原因可能有几个:

  1. emailData.EmailAddress为空
  2. 在承诺得到解决之前,你正在设定状态。在这种情况下,您可能需要在设置状态之前添加一个null检查。示例:
if (emailData.EmailAddress) {
this.setState({emailAddress:emailData.EmailAddress})
}

最新更新