Продолжайте получать React this.setState не является функцией, хотя привязан

Я продолжаю получать это сообщение об ошибке, хотя я уже привязал вызываемую функцию. Я уже пробовал привязку в конструкторе 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>
        );
    }
}

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

Tholle 06.11.2018 01:31

@Tholle, проблема не в этом, потому что эта часть кода находится в другом сегменте оператора if. Также у меня там опечатка, потому что это должен быть this.setState({ establishmentId: this.props.auth.establishments[0].id })

Diego Cordoba 06.11.2018 03:58

Если вопрос не отражает ваш реальный код из-за опечатки или ошибок копирования / вставки, лучше всего отредактировать вопрос так, чтобы он отображался, и оставить небольшую заметку с упоминанием изменения.

lod 06.11.2018 04:25
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Навигация по приложениям React: Исчерпывающее руководство по React Router
Навигация по приложениям React: Исчерпывающее руководство по React Router
React Router стала незаменимой библиотекой для создания одностраничных приложений с навигацией в React. В этой статье блога мы подробно рассмотрим...
Массив зависимостей в React
Массив зависимостей в React
Все о массиве Dependency и его связи с useEffect.
1
3
27
0

Другие вопросы по теме