Recibo un error que no puedo entender o sacudir. Lo que estoy tratando de hacer es que al hacer clic en un botón, estoy tratando de cambiar el valor en el campo de texto en el formulario que creé. Sin embargo, recibo este error:
No se puede crear una etiqueta de propiedad en una cadena para una de las instancias.
Aquí está la función donde estoy tratando de cambiar los valores:
getReport(ReportList) { this.state.SPCCODE.label = 'NA'; this.state.destinationcode.label = 'NA' }Estoy declarando SPCCODE en el estado como
SPCCODE: '', destinationcode: '',Estoy declarando SPCCODE como representación condicional en representación así:
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> ); }Estoy manejando el cambio de CÓDIGO SPC en esta función:
handleChangeSPC = SPCCODE => { this.setState({ hide: false }); this.setState({ SPCCODE }); var spc_label = SPCCODE.label; this.setState({ spc_label }); };Estoy llamando a la función g getReport() desde una tabla de componentes secundarios como esta
passVariable() { this.props.getReport(this.state.ReportList); }Estoy llamando a esto onClick
Al investigar, obtengo que puede mostrar el error porque la variable es inmutable pero no la he declarado en ninguna parte en const. Por favor, ayuda, no sé por qué exactamente se muestra este error.
El problema es que declara SPCCODE como cadena en el estado y luego intenta acceder a la label de propiedad inexistente dentro de él. No es posible y tira error de tipo.
Para resolverlo, debes declararlo como un objeto literal como:
SPCCODE: {label:''}