React-select: uncaught typeerror: невозможно прочитать свойство offsettop со значением null

Я создал компонент (работает на 100% полностью), и после его перемещения в новый каталог, после нажатия на «Выбрать компонент» (должен отобразить все параметры, кроме сбоев) из реагировать-выбрать, я получаю:

manage-pois.js?v=1523440002:34563 Uncaught TypeError: Cannot read property 'offsetTop' of null
    at Select.componentDidUpdate (manage-pois.js?v=1523440002:34563)
    at commitLifeCycles (manage-pois.js?v=1523440002:16708)
    at commitAllLifeCycles (manage-pois.js?v=1523440002:17876)
    at HTMLUnknownElement.callCallback (manage-pois.js?v=1523440002:8472)
    at Object.invokeGuardedCallbackDev (manage-pois.js?v=1523440002:8511)
    at invokeGuardedCallback (manage-pois.js?v=1523440002:8368)
    at commitRoot (manage-pois.js?v=1523440002:17980)
    at performWorkOnRoot (manage-pois.js?v=1523440002:18947)
    at performWork (manage-pois.js?v=1523440002:18897)
    at batchedUpdates (manage-pois.js?v=1523440002:19016)

А вот мой код, в котором я визуализирую поле Select:

 renderSelectCountry() {
        const {countries} = this.state;
        let options = countries ? countries.map((country) => {
            return {value: country.id, label: country.title};
        }) : [];
        return <Select
            value={this.state.countryId}
            placeholder='Country*'
            onChange={(e) => {
                this.setState({countryId: e ? e.value : ''})
            }}
            options={options}
            style={{marginBottom: '0px'}}
        />
    }

Метод renderSelectCountry не содержит точки, в которой ваш код ломается. Похоже, что в какой-то части кода вы пытаетесь получить offsetTop элемента, которого все еще нет в DOM.

Cristian S. 11.04.2018 12:02
0
1
1 072
1

Ответы 1

Компонент <Select> пытается получить свойство offsetTop из элемента DOM, который представляет выбранный параметр. Похоже, что по какой-то причине в этой опции не смонтирован узел DOM.

Я создал минимальный пример кода и ящика с вашим кодом, и, похоже, он работает.

Вероятно, проблема не в предоставленном вами коде.

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