#javascript #reactjs
#javascript #reactjs
Вопрос:
Я пытаюсь отобразить некоторые данные в выпадающее меню, однако при расширении оно не отображает никаких данных. Но отображение данных в консоль работает.
Может ли быть проблемой, что данные извлекаются из базы данных на componentDidMount? Я заметил, что при загрузке страницы массив сначала регистрируется в консоли как пустой, а в следующую секунду в нем есть данные. У кого-нибудь есть какие-либо предложения о том, как это исправить?
Отображение в выпадающей кнопке:
<div class="dropdown-menu" aria-labelledby="dropdownMenuButton">
{console.log(this.state.devicenames)}
{this.state.devicenames.map((number) => (
<a class="dropdown-item" href="#" >{number}</a>
))}
</div>
Получение данных из базы данных с помощью componentDidMout:
componentDidMount() {
const uid = this.state.user.uid;
const serialRef = db.ref(uid '/serials');
serialRef.on('value', (serial_numbers) => {
const serials = [];
const devicename = [];
serial_numbers.forEach((serial_number) => {
const za = serial_number.val();
const ta = za.serial;
const nameRef = db.ref(ta '/devicename');
nameRef.on('value', (dname)=> {
devicename.push(dname.val());
})
})
this.setState({devicenames: devicename})
})
}
Заранее спасибо!
Комментарии:
1. Похоже на что-то в рендеринге, может быть css или отсутствующий возврат, трудно увидеть без полного кода. Попробуйте отобразить какой-нибудь статический элемент, просто чтобы посмотреть, правильно ли вы выполнили рендеринг.
2. @Eran статический метод работает нормально. Я только что заметил, что он работает правильно, если я открываю страницу с выпадающим меню с другой страницы, однако в выпадающем списке не отображаются отображаемые данные, если я обновляю страницу. Затем выпадающий список снова становится пустым.
3. Можете ли вы войти: this.state.devicenames. длина ?
4. А также {this.state.devicenames.map((number) => { console.log(‘number=’,number) возвращает <a class=»выпадающий элемент» href=»#» >{number}</a> )}}