public async Task<List<string>> AsyncModifyPassword(LoginDTO entity)
{
List<string> errors = new List<string>();
ApplicationUser user = await _userManager.FindByEmailAsync(entity.Email);
if (user == null)
{
errors.Add("User Not Found"); //todo, hablar sobre el tema de lanzar las excepciones
return errors;
}
//user.PasswordHash = _userManager.PasswordHasher.HashPassword(user, entity.Password);
IdentityResult result = await _userManager.ChangePasswordAsync(user, entity.Password , entity.NewPassword);
if (!result.Succeeded)
errors = result.Errors.ToList().Select(error => error.Description).ToList();
return errors;
}
Если ваши данные не являются массивом, не используйте функцию карты. Измените свой код, как показано ниже:
render() {
return (
<div>
{
this.state.data &&
<div key={this.state.data.key}>
{this.state.data.display}
{this.state.data.nutrition}
</div>
}
</div>
)
}
Функция map
в Array.prototype
принимает функцию обратного вызова с аргументами, (value, index) => {}
. Если вы планируете деструктурировать, используйте вместо этого
this.state.data.map({key, display, nutrition, ...rest}, index) => { // index of value in this.sta
<div key={key}>
{display} //I am assuming this is a string not a object or array
{nutrition} // this should be a string
</div>
}
Редактировать : Я предполагаю, что data
похоже на
data: [
{
key: "",
nutrition: "",
display: ""
},
{
key: "",
nutrition: "",
display: ""
}
]
Редактировать 2 [1114 ]:
Учитывая это
state {
data =
[
{ id: 1,
display: 'Pommes',
unity: [ 'unités' ],
category: [ 'fruits' ],
nutrition: 95,
vitamins: [ 'C', 'B-6' ]
},
{
id: 2,
display: 'Poires',
unity: [ 'unités' ],
category: [ 'fruits' ],
nutrition: 95,
vitamins: [ 'C', 'B', 'E' ]
}
];
}
Вот как это отобразить:
render() {
return (
<>
{
this.state.data && this.state.data.map(({id, display, nutrition, vitamins}) => {
return (
<div key={id}>
{display}
{nutrition}
{<>vitamins.map(v => v) </>} //in case you need thing such as vitamis, Array, also to eppear
</div>
)})
}
</>
)
}