Martovitskiy
@Martovitskiy

Как обновить данные в форме если перезаписался state?

componentDidMount() {
	this.fetch();
}

fetch = () => {
	this.fetchPermissions();

};

fetchPermissions = () => {
	return api
		.get(`api/test/get`)
		.then(response => {
			this.setState({
				userData: response.data
			});
		})
		.catch(e => {
			this.setState({
				userData: []
			});
		});
}

render() {
	const {
		iconLoading,
		permissions,
		userData
	} = this.state;
	console.log(userData)
	return ( <>
		<Form>
		<Col xs = {24}
		xl = {12}
		className = "__border-right streams_partner_trackers" >
		{
			this.validator(
				'name',
				t('user_name'), <
				Input placeholder = {
					t('enter_user_name')
				}
				size = "large"
				value = {
					userData.user.name
				}
				/>, [{
					required: true,
					message: t('message.field_is_required')
				}])
		} </Form> </>
	)
}


После отработки fetch данные есть в userData, но уже ошибка TypeError: Cannot read property 'user' of undefined. Как правильно отрендерить и подбросить value после fetch?
  • Вопрос задан
  • 76 просмотров
Пригласить эксперта
Ответы на вопрос 1
@ADDtvb
Сделайте тернарную проверку прям в value
value = {
          userData.user.name ?  userData.user.name : "Loading..."
        }

И после того данные с API прилетят у вас корректно отобразиться userData.user.name
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы