给出以下示例,该示例是将函数传递给setState而不是其下面的基于对象的替代方法的模式。 我对以这种方式更新状态的机制尚不清楚。谁能帮忙清除它?
@Component({
selector: 'page-login',
templateUrl: 'login.html'
})
export class MyParent {
@ViewChild(PhoneInputComponent) childEl: PhoneInputComponent;
getChildValue(){
const value = this.childEl.getMyValue();
console.log(value);
console.log(this.childEl);
较少建议的替代方法:
submit(){
this.setState((prevState, props) => {
return {showForm: !prevState.showForm}
});
}
但是,如果不是旧状态,可以通过什么机制插入新状态。
我了解到,取反的值用于强制改变状态,但是submit(){
this.setState({showForm: !this.state.showForm}
});
}
(类似于!prevState.showForm
)看起来像是简洁的语法,我不清楚其机制。
是不是:如果状态相同,则值是false,因此状态不会更新,但是如果状态不同,则值是true,因此状态会更新?
答案 0 :(得分:0)
如果showForm
未处于状态,则!this.state.showForm
将等于!undefined
,即true
。这样,您可以在true
和false
之间切换,而无需为某个参数设置初始值。
我个人将state = { showForm: false };
设为初始状态,以便您的同事或您自己在6个月内可以一目了然地看到此组件的状态。