我试图仅在用户单击“提交”按钮时触发API调用
这是在用户登录上下文中,其中父级的组件状态得到更改。
extension UICollectionView: Configurable {
typealias Data = UICollectionViewLayout
func configure(data: Data) {
collectionViewLayout = data
}
}
我的问题:我可以做这样的事情吗,还是我绝对需要使用init(frame:)
吗?
我已经为此苦苦挣扎/搜索了太多时间,但仍然找不到使它起作用的方法。
答案 0 :(得分:1)
可以这样做。据我所知,一旦到达//check if user is authentificated
,您就会遇到问题。发生这种情况是因为react的setState
是异步的。
为了在修改状态后立即访问状态,setState
函数采用了可选的回调函数,因此您可以尝试这样编写代码:
this.setState({answer:json}, () => {
//check if user is authentificated
alert("Server Answer : "+ this.state.answer.answer);
if(this.state.answer.answer.localeCompare('true') == 0){
this.props.app.setState({auth: true});
sessionStorage.setItem('auth', true);
}
else if (this.state.username != ""){
alert("INCORRECT USERNAME PASSWORD ");
}
});