簡體   English   中英

可能無法在不可變對象上的字符串錯誤上創建屬性 label

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM