После отправки действия по созданию нового объекта API-интерфейсом он возвращает его на mapStateToProps
.
При обратном вызове componentDidUpdate
я могу сопоставить объект с реквизитами и открыть экран подробностей, передавая его. Проблема в том, что когда я возвращаюсь и пытаюсь создать новый объект (просто заполните форму), он продолжает вызывать componentDidUpdate с недавно созданным объектом в props (так как я устанавливаю состояние с содержимым, которое пользователь вводит, и this.props.deck
все еще там.
Есть ли другой жизненный цикл, в котором я не могу получить мусор в реквизите или другую логику?
Мое действие по отправке:
this.props.createDeck(deckToBeCreated) // dispatch an action to create a deck
Часть моего редуктора:
case ADD_NEW_DECK_SUCCESS:
return {
...state,
deck: action.deck,
}
в случае успеха я получу этот объект колоды, созданный API, здесь:
function mapStateToProps({specificDeckReducer}) {
return {
deck: specificDeckReducer.deck
}
}
componentDidUpdate() { // THE PROBLEM IS HERE.
const { deck } = this.props
if (deck != null && deck.id) {
this.showDeckDetail(deck)
this.reset()
}
}