#javascript #node.js #reactjs #mapping
#javascript #node.js #reactjs #отображение
Вопрос:
У меня есть массив объектов, таких как
const array = [{
text: 'some text',
userID: '1'
},
{
text: 'another text',
userID: '2'
}
]
Я должен сопоставить этот массив в React, а также получить данные пользователя, такие как username и user-dp, через идентификатор пользователя. Как я должен это сделать? Я использую React, MongoDB, NodeJS, Express.
Я попытался вызвать api для получения сведений о пользователе при отображении массива в моем интерфейсном коде. Он не отображается должным образом, поскольку позже я узнал, что мы не должны вызывать api в методе render().
Комментарии:
1. Сопоставить с каким форматом? Что вы пробовали?
2. Где данные пользователя? пользователь dp? Можете ли вы предоставить нам фактический массив?
3. сведения о пользователе: имя пользователя и URL-адрес для фотографии пользователя
4. отображение массива для отображения его во внешнем интерфейсе. Заголовок и сведения о пользователе.
5. Кто-нибудь может мне помочь с этим?
Ответ №1:
Что ж, ваш вопрос не является полным, но я попробую ответить на него… Предполагая, что у вас есть:
const array = [{
text: 'some text',
userID: '1'
},
{
text: 'another text',
userID: '2'
}
];
Вы можете сделать
async componentDidMount() {
// I dont know where the array come from, ill assume it comes from the props...
const { array } = this.props;
// Promise.all returning an array of userDetails in the same order than the given array
const userDetails = await Promise.all(array.map(({userID}) => fetch(`apiUrl/${userID}`);
this.setState({ userDetails })
};
И тогда у вас будет доступ к вашим данным в рендеринге, получив доступ к вашему состоянию.