[英]Cannot create property label on string error on immutable objects probably
我收到一個我無法理解或動搖的錯誤。 我想要做的是,在單擊按鈕時,我試圖更改我創建的表單中的文本字段中的值,但我收到了這個錯誤:
無法在其中一個實例的字符串上創建屬性 label。
這是我試圖更改值的 function :
getReport(ReportList) {
this.state.SPCCODE.label = 'NA';
}
我在 state 中將 SPCCODE 聲明為
SPCCODE: '',
我在渲染中將 SPCCODE 聲明為條件渲染,如下所示:
let DDL;
const DDLValue = servicecode.label;
if (DDLValue == 'Direct') {
DDL = <> </>;
} else if (DDLValue == 'STYD') {
DDL = <> </>;
} else {
DDL = (
<Col lg="6" style={{ marginTop: '0rem' }}>
<Label for="spcc">SPC</Label>
<Select
className="select"
id="spc"
// value={servicecode}
placeholder="Search spcCode..."
value={hide ? null : SPCCODE}
onChange={this.handleChangeSPC}
options={this.state.spcCode}
isDisabled={this.state.disable}
styles={{
control: (provided, state) => ({
...provided,
boxShadow: 'none',
// borderBottom: "1px dotted pink",
borderBottom: this.state.isEmpty4 ? '1px solid red' : '1px solid black',
}),
}}
/>
</Col>
);
}
我正在處理此 function 中的 SPC 代碼更改:
handleChangeSPC = SPCCODE => {
this.setState({ hide: false });
this.setState({ SPCCODE });
var spc_label = SPCCODE.label;
this.setState({ spc_label });
};
我從這樣的子組件表中調用 g getReport() function
passVariable() {
this.props.getReport(this.state.ReportList);
}
我叫這個 onClick
在研究中,我發現它可能顯示錯誤,因為該變量是不可變的,但沒有在任何地方在 const 中聲明它。 請幫助不知道為什么會顯示此錯誤?
問題是您在 state 中將SPCCODE
聲明為字符串,然后嘗試訪問其中不存在的屬性label
。 這是不可能的並拋出類型錯誤。
要解決它,您必須像字面量 object 一樣聲明它,例如:
SPCCODE: {label:''}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.