Я продолжаю получать это сообщение об ошибке, хотя я уже привязал вызываемую функцию. Я уже пробовал привязку в конструкторе this.onChangeEstablishmentSelected = this.onChangeEstablishmentSelected.bind(this) и вне его onChange = {this.onChangeEstablishmentSelected.bind(this)}
Я не знаю, что вызывает это, потому что это не имеет никакого смысла, и я просмотрел много сообщений и официальных документов, и мне кажется, что все на своем месте.
class PatientFormReview extends Component {
state = {
materializeInitialized: false,
establishmentId: 0
};
onChangeEstablishmentSelected(event) {
this.setState({
establishmentId: event.target.value
});
}
renderOptions() {
if (this.props.auth.establishments.length === 1) {
this.setState = {
establishmentId: this.props.auth.establishments[0].id
};
return (
<Fragment>
<select value = {this.state.establishmentId} disabled>
<option value = {this.props.auth.establishments[0].id}>
{this.props.auth.establishments[0].name}
</option>
</select>
<label>Establecimiento</label>
</Fragment>
);
} else {
let options = this.props.auth.establishments.map(establishment => (
<option key = {establishment._id} value = {establishment._id}>
{establishment.name}
</option>
));
return (
<Fragment>
<select
value = {this.state.establishmentId}
onChange = {this.onChangeEstablishmentSelected.bind(this)}
>
{options}
</select>
<label>Establecimiento</label>
</Fragment>
);
}
}
@Tholle, проблема не в этом, потому что эта часть кода находится в другом сегменте оператора if. Также у меня там опечатка, потому что это должен быть this.setState({ establishmentId: this.props.auth.establishments[0].id })
Если вопрос не отражает ваш реальный код из-за опечатки или ошибок копирования / вставки, лучше всего отредактировать вопрос так, чтобы он отображался, и оставить небольшую заметку с упоминанием изменения.





Вы перезаписываете
this.setStateвнутриrenderOptions, записываяthis.setState = { establishmentId: this.props.auth.establishments[0].id };