Невозможно получить массив объектов из firebase, используя реагировать - PullRequest
0 голосов
/ 09 марта 2019

Я разрабатываю приложение для корзины, и мои продукты хранятся в база данных пожарной базы. При получении данных я получаю каждый продукт отдельно как массив. Я использую Context API здесь. Ниже Код.

class ProductProvider extends Component {
  state = {
    products: []
  };

  componentDidMount() {
    this.setProducts();
  }

  setProducts() {
    let products = [];
    let product = firebaseConfig.database().ref("dataJson");
    product.on("child_added", snap => {
      products = snap.val()   
      this.setState(
        () => {
          return { products };
        }
         , () => console.log(this.state)
      );
    });
  }

  render() {
    return (
      <ProductContext.Provider
        value={{
          ...this.state
        }}
      >
        {this.props.children}
      </ProductContext.Provider>
    );
  }
}

const ProductConsumer = ProductContext.Consumer;

export { ProductProvider, ProductConsumer };

enter image description here

1 Ответ

0 голосов
/ 09 марта 2019

Попробуйте добавить значение для каждой записи в вашей базе данных в массив продуктов следующим образом:

setProducts() {
  let product = firebaseConfig.database().ref("dataJson");

  product.on("child_added", snap => {
    let products = [];
    products.push(snap.val());
    this.setState({ products });
  });
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...