El siguiente código se encuentra en un componente de clase React (como métodos de clase)
_checkSelectedTime = () => { if (!this.state.selectedTime || !this.state.selectedTimeTwo) { this.setState({ showSnackbar: true, snackbarMessage: formatMessage({ id: 'app.monthlylogspage.noselectedtimeerror', defaultMessage: 'Error: Make sure that you have properly selected times.', }), selectedTimeCheck: false, }); return false; } if (!this.state.selectedMonth || !this.state.selectedYear) { this.setState({ showSnackbar: true, snackbarMessage: formatMessage({ id: 'app.monthlylogspage.noselectedmonthyear', defaultMessage: 'Error: Make sure that you select a month and year.', }), selectedTimeCheck: false, }); return false; } if (this.state.selectedTime.getHours() > 11 || this.state.selectedTimeTwo.getHours() < 12) { this.setState({ showSnackbar: true, snackbarMessage: formatMessage({ id: 'app.monthlylogspage.timeselecterror', defaultMessage: 'Error: Make sure that you properly select a time in the AM and time in the PM.', }), selectedTimeCheck: false, }); return false; } this.setState({ selectedTimeCheck: true }); return true; } _getPDF() { this._checkSelectedTime(); }Específicamente, _getPDF() se asigna a la función onClick de un botón, así (en la función render()):
<RaisedButton label={ <span> <FormattedMessage id="app.monthlylogspage.downloadtemperaturepdf" defaultMessage="Download PDF" /> </span> } primary={true} onClick={this._getPDF} // href={this._getGeneratePdfLink()} icon={<DownloadIcon />} />Cada vez que hago clic en el botón, aparece un error que dice que this._checkSelectedTime no es una función en la línea de getPDF() (Error de tipo no detectado: this .checkSelectedTime no es una función).
Me preguntaba si podría haber alguna razón por la cual. Otras llamadas a funciones en el mismo componente funcionan bien.
Gracias
Suena como un problema vinculante. intente usar una función de flecha en _getPDF
_getPDF = () => { this._checkSelectedTime(); }