Выпадающий список React Native не работает, если значение данных пустое - PullRequest
0 голосов
/ 25 марта 2020

после запуска действия create я пытаюсь заполнить выпадающий компонент моим объектом из Reducer. Я пытался, но не мог.

import React, { Component } from 'react';
import { View } from 'react-native'
import {connect} from 'react-redux';
import { Dropdown } from 'react-native-material-dropdown';
import { recuperarDisciplinas } from '../actions/AutenticacaoActions';

class cadastroMateria extends Component {

componentDidMount(){

 const { disciplina } = this.props;   
 this.props.recuperarDisciplinas({ disciplina }) 
}

render() {
   return (

  <View>

// First it hits here once before going to componentDidMount and at that moment as the 
// 'discipline' is still empty, the error dropdown 

    <Dropdown label="Disciplinas" data={this.props.disciplina } />
  </View>       
  );
}
}

const mapStateToProps = state => (
{
    disciplina: state.AutenticacaoReducer.disciplina,
}
);

export default connect( mapStateToProps, { recuperarDisciplinas })(cadastroMateria);

Я исследовал, чтобы выяснить, возможно ли в раскрывающемся списке принять ноль, по крайней мере, в первый раз, чтобы при заполнении «дисциплины» ее можно было заполнить позже, но я не мог. Я пробовал несколько других вещей, но я не знаю, как решить эту проблему. кто может оказать мне помощь, я благодарю

1 Ответ

0 голосов
/ 25 марта 2020

В случае, если он приносит объекты, которые я хочу, из firebase, моя трудность состоит в том, что, поскольку он асинхронный, он выдает ошибку в раскрывающемся списке, потому что «данные» пусты. Я тоже так пробовал, но ошибка сохраняется, а в остальном это правильно.

_recuperarDisciplinas(){

 const { disciplina } = this.props;

 this.props.recuperarDisciplinas({ disciplina }) 

/*this 'dropdown.disciplinas' at the beginning comes as false, after it passes 
through the firebase function I make the action turn it to true */

 if(this.props.dropdown_disciplinas){
    return <Dropdown label="Disciplinas" data={this.props.disciplina } />
 }
}

render() {
   return (

  <View>
{this._recuperarDisciplinas()}
  </View>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...