Почему запрос «props.match.params.id» не читается с помощью firestoreConnect - запрос «где» с использованием response.js & redux? - PullRequest
0 голосов
/ 04 июня 2019

Я пытаюсь отфильтровать товары по идентификатору категории, используя реаги, редуксы и пожарные.Я использую firestoreConnect для запроса коллекции продуктов по идентификатору выбранной категории в заявке на ссылку - props.match.params.id и сохраняю этот запрос как фильтрованные продукты.

Этот идентификатор параметра не пуст, когда console.logвнутри render и firestoreConnect, но в предложении where - оно не определено или не имеет значения null.Следовательно, коллекция запросов пуста и, следовательно, не получает никаких записей.

Любое решение будет оценено.

Я мог бы вывести props.match.params.id внутри firestoreConnect.Кроме того, я попытался проиндексировать коллекцию firetore на сайте firebase, но безуспешно.

Вот что я имею в листинге продуктов: js:

import React, { Component } from "react";
import { compose } from "redux";
import { connect } from "react-redux";
import { firestoreConnect } from "react-redux-firebase";

class Listing extends Component {
  render() {
    console.log(this.props.match.params.id); // able to log
    const { filteredProducts } = this.props;
    return (
      <div>
        {filteredProducts && filteredProducts.length > 0 ? (
        <ul>
           {filteredProducts.map(product => (
              <li>{product.name}</li>
            ))}
        </ul>
      ) : (
         <div>no products matching criteria </div>
       )}
      </div>
   );
 }
}

const mapStateToProps = ({ firestore: { ordered } }) => ({
  filteredProducts: ordered.filteredProducts
});

export default compose(
  connect(mapStateToProps),
  firestoreConnect(props => [
    {
      collection: "products",
      where: ["category", "==", props.match.params.id], 
      storeAs: "filteredProducts"
    }
  ])
)(Listing);`

и вот список зависимостей.в файле package.json

"firebase": "^5.11.1",
"react": "^16.6.3",
"react-dom": "^16.6.3",
"react-redux": "^5.1.1",
"react-redux-firebase": "^2.2.6",
"react-reveal": "^1.2.2",
"react-router-dom": "^5.0.0",
"react-scripts": "2.1.1",
"redux": "^4.0.1",
"redux-firestore": "^0.6.4",
"redux-thunk": "^2.3.0"

Я пытаюсь получить отфильтрованную коллекцию продуктов по идентификатору категории

, что я получаю, это пустой или неопределенный объект массива

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...