#javascript #reactjs
#javascript #reactjs
Вопрос:
если пользователь существует, он отобразит все сообщение, как на прикрепленном скриншоте. скриншот еще, идентификатор пользователя не существует, я хочу, чтобы на том же дисплее отображалось сообщение: «пользователь не существует». это происходит внутри catch, но затем веб-сбой.
...
export default function AllMessages(){
const [messagesState, setMessagesState] = useState([]);
const getAllMessages = async () =>{
let userId = document.querySelector("#userInput").value;
try{
const response = await axios.get("http://localhost:3001/messaging/get-all-messages/" userId)
setMessagesState(response.data);
}
catch( e ) {
let userNotFound = {
error: "user not found"
}
setMessagesState(userNotFound);
}
}
...
return(
...
<div className="message-item all-messages">
{messagesState.error ? <h1> messagesState.error </h1>:
messagesState.map(message => (
<ul class="list-group">
<Message handleDelete={() => handleDelete(message.id,message.receiver)} from = {message.sender} to = {message.receiver} subject = {message.subject} content = {message.message} date = {message.creationDate}/>
</ul>
))
}
</div>
</div>
)
}
Комментарии:
1. Почему бы не использовать if else?
2. где? как? новое с этим языком
Ответ №1:
if(response.data){ setMessagesState(response.data); } else { пусть userNotFound = { ошибка: «пользователь не найден» } setMessagesState(userNotFound); }