3 回答
TA贡献1869条经验 获得超4个赞
您所在的州有多个属性。messageInfo例如,如果您从属性and开始type,然后再使用this.setState({ messageInfo: newMessageInfo }),那么新状态将只有属性messageInfo;该type属性将丢失,因为它的值未传递给setState。
setState相反,在定义新属性之前将先前的状态传播到调用中:
clearForm(){
this.setState({
...this.state,
messageInfo: {
...this.state.messageInfo,
// ...
和
handleSubjectChange(evt){
this.setState({ ...this.state, subject: evt.target.value }, () => {
等等。
TA贡献2016条经验 获得超9个赞
您不能直接访问messageInfo. 有两种获取方式:
clearForm(){
this.setState({
messageInfo: {
...this.state.messageInfo,
subject: '',
description: ''
}
})
}
或者
clearForm(){
this.setState((prevState) => {
messageInfo: {
...prevState.messageInfo,
subject: '',
description: ''
}
})
}
TA贡献1995条经验 获得超2个赞
在 clearForm(){} 函数中你不能直接使用 messageInfo,你应该定义一个状态类型而不是变量。
clearForm(){
this.setState({
messageInfo: {
...this.state.messageInfo,
subject: '',
description: ''
}})
}
添加回答
举报