Когда вы перенаправляете на новый компонент / маршрут, этот компонент снова монтируется на экран. Вы должны использовать componentDidMount()
вместо;
Откройте для себя компонент:
componentDidMount() {
this.props.fetchSongs();
}
Редактировать ---
Только что узнал, что ваша вторая страница на самом деле модальная и что вы выполняете свой action-creator
и перенаправляете туда. В этом случае компонент Discover
может фактически не размонтироваться с экрана, поэтому componentDidMount()
не выполняется. Но componentDidUpdate(
) все равно должен работать, давайте немного его реорганизовать
Так что в компоненте Discover попробуйте что-то вроде:
componentDidUpdate(prevProps){
if(this.props.songsOrNameOfReducerKey !== prevProps.songsOrNameOfReducerKey){
this.props.fetchSongs()
}
}
this.props.songsOrNameOfReducerKey
просто относится к избыточному состоянию, в котором содержится обновленный список песен - доступный в качестве опоры в вашем компоненте. Мы сравниваем обновленный список с нашим предыдущим списком, и если есть разница, мы запускаем вашего создателя действия.
Убедитесь, что вы подключили redux
к своему компоненту через mapStateToProps()
, чтобы получить это значение состояния. Замените songsOrNameOfReducerKey
ключом, который вы определили.
Когда вы удаляете песню из вашего списка, она должна дать компоненту Discover новые реквизиты, таким образом вызывая componentDidUpdate()