#reactjs #react-hooks
#reactjs #реагирующие перехваты
Вопрос:
Работа с компонентом react с использованием перехватов. Я пытаюсь присвоить значения своему состоянию после вызова Axios. Данные возвращаются правильно, и кажется, что состояние правильно обновлено; однако DOM не обновляется значениями. Является ли это правильным методом для этого?
export const Main = (props) => {
const { token } = useParams()
const [user,setUser] = useState({name:""})
useEffect(()=>{
const getUser = async() =>{
const response = await API.post("usrinfo",{token:token})
setUser({name:response.data.name});
}
getUser()
},[token])
return(
<div className="main-header">{user.name}</div>
);
}
Комментарии:
1. Если состояние обновлено, то DOM должен обновиться. Убедитесь, что вы не получаете никаких ошибок при выполнении HTTP-запроса. Используйте
try-catch
блок для перехвата и обработки любых ошибок во время HTTP-запроса. Также проверьте наличие ошибок на консоли.2. Как упоминал @Yousaf, если состояние обновляется, DOM также должен обновляться. Возможно, вы получаете некоторые ошибки или состояние обновляется не так, как вы ожидаете. Можете ли вы предоставить более подробную информацию?
3. Как указано, информация возвращается на сервер без ошибок. Не уверен, какие другие подробности я могу предоставить.
Ответ №1:
Нашел проблему:
AXIOS возвращает часть данных в своем ответе, так что вместо response.data.name
этого должно быть response.data.data.name
.
Спасибо за все ваши ответы.