Я пытаюсь установить для нескольких состояний в цикле for значение false или true в зависимости от того, соответствуют ли они требованию (оператора if).Цикл for будет проходить через массив строк, каждая строка представляет состояние.Но я не могу использовать eval в функции this.setState ...
Я пытался исследовать онлайн, но ни одно из решений не соответствует моей проблеме или тому, что я пытаюсь решить.Я даже пытался eval (this.state.anything) = false, но он все еще не работает и показывает левую руку, назначающую недопустимую ошибку.
let businessState = [
"this.state.groupName",
"this.state.groupOwnerName",
"this.state.groupDesc",
"this.props.profile._id",
"this.state.businessName",
"this.state.businessDesc",
"this.state.businessRegNo",
"this.state.businessType",
"this.state.businessEmail",
"this.state.businessTel",
"this.state.businessWeChat",
"this.state.businessRegPhotoUri",
"this.state.businessSignPhotoUri"
];
var temp = ""
for (i = 0; i < businessState.length; i++) {
if (eval(businessState[i]) == ""){
temp = businessState[i]+ "Error"
this.setState({
eval(temp): true
})
}
}
Как вы можете видеть из кода выше, я хочуоценить состояние, и если значение, которое содержит это конкретное состояние, является пустой строкой "", я хочу установить это имя состояния + "Ошибка" (например, если this.state.email является пустой строкой "", я хочу установитьthis.state.emailError в true.