В моем приложении React я хочу отобразить значение prop, но оно не существует до тех пор, пока реквизит не будет обновлен, что произойдет после завершения рендеринга.Реакция: попытка рендеринга реквизита, который заполняется ПОСЛЕ рендеринга
this.props.users
является объектом, поэтому я использую Object.keys()
перевести в массив, а затем карту через дочерние элементы с помощью клавиш, чтобы нацелить их:
// ...
render() {
return {
<div className='users-list'>
<h4>Users List</h4>
{!isLoaded(users) ? '' :
Object.keys(users).map((key, i) => <p>{users[key].email}</p>)
}
</div>
}
}
Это работает, но это заняло у меня много взломать и адаптировать код, чтобы попасть туда. Есть ли лучший/более красноречивый способ сделать это? Потому что я думаю, что это действительно обычный случай! Входит ли в него жизненный цикл компонента?
Любая помощь/предложения оценены.
Вы делаете это правильно. –
Я действительно не вижу в этом ничего плохого. Код легко читается. Я могу сказать, что вы только хотите отображать пользователей после их загрузки, и из кода я могу сказать, что пользователи также не обязательно появятся в первом рендере. Это довольно обычная вещь, которую нужно сделать в реакционной кодовой базе –
Хорошо. Хорошо, что это хорошо знать :) Мне хотелось определить список заранее, а затем сделать это может быть лучше. Но я попробовал это, и он, очевидно, затем пытается присвоить значение 'users' переменной перед рендером, которая в этот момент равна« null ». Просто хотел убедиться, что это была не плохая практика. Благодарю. – Paulos3000