У меня сейчас какие-то проблемы с Angular 8. Я пытаюсь создать веб-приложение, в котором вы можете искать пользователей и в ответ получить всех пользователей, которые соответствуют вашему запросу + сообщения первого из перечисленных пользователей. Для этого я создал сервис под названием SearchService, который имеет функцию onSearch для отправки поиска в серверную часть.
onSearch(search: string){
this.http.get(URL + search.trim()).subscribe((searchResponse: {user: Array<Users>, userPosts: Array<Post>} => {
this.searchArray = searchResponse
this.searchSubject.next(searchResponse)
})
После этого, когда я пытаюсь полюбить пост пользователя, я вызываю эту функцию из моего PostService
onLikeOrDislikePost(like: boolean, postId: string, section: string) {
const data = {
id: postId,
like: like,
};
this.http.post(URL + '/like-dislike/post', data).subscribe((response: Post) => {
this.updatePosts(response, section)
})
}
Как вы можете видеть, я затем вызываю мою функцию updatePosts, которая выясняет, где находится сообщение, то есть, находится ли сообщение в разделе «Профиль» или в разделе «Поиск», какой индекс он имеет в массиве, и даже если он находится в массиве или нет. Свою функцию я также использую для добавления Posts et c. вот почему это может показаться немного большим.
updatePosts(postToUpdate: Post, section: string) {
let indexOfPost = -1;
if(section === 'profil'){
this.dataService.userPosts.map((post, index) => {
if(post._id === postToUpdate._id){
indexOfPost = index;
return
}
})
if(indexOfPost !== -1){
this.dataService.userPosts.splice(indexOfPost, 1, postToUpdate)
} else {
this.dataService.userPosts.splice(0, 0, postToUpdate)
}
this.dataService.userPostSubject.next(this.dataService.userPosts)
} else if(section === 'search'){
this.searchService.searchArray.posts.map((post, index) => {
if(post._id === postToUpdate._id){
indexOfPost = index;
return
}
})
if(indexOfPost !== -1){
this.searchService.searchArray.posts.splice(indexOfPost, 1, postToUpdate)
} else {
this.searchService.searchArray.posts.splice(0, 0, postToUpdate)
}
this.searchService.searchSubject.next(this.searchService.searchArray)
}
}
Моя проблема сейчас заключается в том, что, хотя все работает нормально с разделом profil, когда функция переходит в раздел поиска, происходит сбой, потому что this.searchService.searchArray не определен, хотя я установил его с помощью Функция onSearch. Я уже проверял, правильно ли я ввел Службу, но все мои службы вводятся root, кроме того, я искал другие компоненты, где я использую свой searchService с отладчиком, и каждый раз, когда был определен this.searchservice.searchArray.
Я благодарен за любую помощь