Как я могу использовать параметр функции в качестве имени свойства для обновления состояния, например
onStudentPinChange = (propertyName, e) => {
this.setState({
formFields: { ...this.state.formFields, propertyName: e.target.value }
});
};
приведенный выше код сгенерировать ошибку
Я хотел бы использовать эту переменную propertyName
в качествеключ объекта Я погуглил и попробовал много разных техник, таких как this.state.formFields[propertName]
Я создаю новое веб-приложение. У меня есть несколько полей формы, которые необходимо заполнить, чтобы войти в область администратора.У меня есть три метода, которые в основном делают одно и то же, просто обновляя соответствующее состояние
onStudentPinChange = (propertyName, e) => {
var item = { ...this.state.formFields };
item[propertyName] = e.target.value;
console.log(item);
this.setState({
formFields: { ...this.state.formFields, studentPin: e.target.value }
});
};
onCNICChange = (propertyName, e) => {
this.setState({
formFields: { ...this.state.formFields, cnic: e.target.value }
});
};
onPasswordChange = (propertyName, e) => {
this.setState({
formFields: { ...this.state.formFields, password: e.target.value }
});
};
<InputField
type="text"
name="student_pin"
value={this.state.formFields.studentPin}
placeholder="Student Pin"
onChange={this.onStudentPinChange.bind(this, "studentPin")}
faClassName="fa-user"
/>
Я хотел бы иметь только одну функцию, которая обновляет все три поля, используя только правильное имя
С уважением