React / Redux + firestore Не удается прочитать свойство 'params' из неопределенного - PullRequest
0 голосов
/ 06 сентября 2018

Я пытаюсь реализовать функцию удаления в моем приложении React / Redux с помощью firestore. Но я получаю эту ошибку Cannot read property 'params' of undefined похоже, что у меня нет идентификатора в моем URL? Я также думаю, что мне нужно передать идентификатор документа, который я хочу удалить, но как это сделать? привязать его к удалению? Я думаю, что мои ошибки передаются идентификатору в URL, который отсутствует, но я не уверен

import React, { Component } from "react"
import { compose } from "redux"
import { connect } from "react-redux"
import { firestoreConnect } from "react-redux-firebase"
import { Link } from "react-router-dom"
import PropTypes from "prop-types"


class Health extends Component {
  onDeleteClick = () => {
    const { delHealth, firestore, history } = this.props

    firestore
      .delete({
        collection: "delHealth",
        doc: delHealth.id,
      })
      .then(history.push("/"))
  }
  render() {
    const { health } = this.props

    if (health) {
      const heal = health.slice(0, 3)
      return (
        <table>
          <thead>
            <tr>
              <th> Condition </th> <th> Dosage </th> <th> Fever </th>{" "}
              <th> Headache </th> <th> Pain </th> <th> Weight </th>{" "}
              <th> Hearth Rate </th> <th> Temperature </th> <th />
            </tr>{" "}
          </thead>{" "}
          <tbody>
            {" "}
            {heal.map(el => (
              <tr key={el.id}>
                <td> {el.condition} </td> <td> {el.dosage} </td>
                <td> {el.fever} </td> <td> {el.headache} </td>
                <td> {el.pain} </td>{" "}
                <td>
                  {" "}
                  {el.weight}
                  kg{" "}
                </td>{" "}
                <td> {el.hearthRate} </td> <td> {el.temperature} </td>
                <td>
                  <div className="buttons-edit-del">
                    <Link to={`/health/healthEdit/${el.id}`}>
                      <i class="fas fa-pen" />
                    </Link>{" "}
                    <i class="fas fa-trash-alt" onClick={this.onDeleteClick} />{" "}
                  </div>{" "}
                </td>{" "}
              </tr>
            ))}{" "}
          </tbody>{" "}
        </table>
      )
    } else {
      return <h1> loding </h1>
    }
  }
}

Health.propTypes = {
  firestore: PropTypes.object.isRequired,
  health: PropTypes.array,
}

export default compose(
  firestoreConnect(props => [
    {
      collection: "health",
      storeAs: "delHealth",
      doc: props.match.params.id,
    },
  ]),
  connect(({ firestore: { ordered } }, props) => ({
    health: ordered.health,
    delHealth: ordered.delHealth && ordered.delHealth[0],
  }))
)(Health)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...