Журналы редуктора «удалены», но они все еще существуют в базе данных пожарного депо ...? - PullRequest
2 голосов
/ 04 апреля 2019

'id' отправляется через действие и редуктор и выходит из системы 'удалено', но фактически не удаляется из базы данных firestore ...

clientlist:

class Clients extends Component {

  handleClick = (id) => {
    // e.preventDefault();
    this.props.deleteClient(id)
  }

  render() {
    const {clientList} = this.props
    return (
      <div className="container mt-5 text-center">
        <h2>Here Are Your List of Clients...</h2>
        {clientList && clientList.map(client => {
          return(
            <div key={client.id}>
              <div className="my-2">
                Client Name: {client.name} | Client Price: ${client.price}
                <button className="ml-2" onClick={() => {this.handleClick(client.id)}}>x</button>
              </div>      
            </div>

          )
        })}
        <AddClient/>
      </div>
    )
  }
}

const mapStateToProps = (state) => {
  return {
    clientList : state.firestore.ordered.clientList,
  }
}

const mapDispatchToProps = (dispatch) => {
  return{
    deleteClient : (id) => dispatch(deleteClient(id)) 
  }
}

export default compose(
  connect(mapStateToProps, mapDispatchToProps),
  firestoreConnect([
    {collection: 'clientList', orderBy: 'name'},
  ])
)(Clients)

Действие:

export const deleteClient = (id) => {
    return(dispatch, getState, {getFirestore, getFirebase}) => {
        const firestore = getFirestore();
        firestore.collection("clientList").doc(id).delete().then(() => {
            dispatch({type: 'DELETE CLIENT'})
        }).catch((err) => {
            dispatch({type: 'DELETE CLIENT ERROR', err})
        });

    }     
}

дайте мне знать, если вам нужен какой-либо другой код или информация. ps, нет ошибки при выходе из консоли.

1 Ответ

0 голосов
/ 04 апреля 2019

Попробуй это..doc(id) потому что id должен быть строкой.

Я не думаю, что вам нужно / внутри doc.

Проверьте API.

export const deleteClient = (id) => {
    console.log(id);
    return(dispatch, getState, {getFirestore, getFirebase}) => {
        const firestore = getFirestore();
        firestore.collection('clientList').doc(id).delete().then(() =>{
            dispatch({type: 'DELETE CLIENT'})
        }).catch((err) => {
            dispatch({type: 'DELETE CLIENT ERROR', err})
        })
    }     
}
...