Попробуйте связать свои поля со свойствами состояния, используя атрибут value в каждом из них.
Ввод электронной почты будет выглядеть так:
<input type="email" onChange={this.handleChange} id="email" />
И ввод пароля будет выглядеть так:
<input type="password" onChange={this.handleChange} value={this.state.password} id="password" />
Существуют технические проблемы с реализацией этой функции. Общие случаи кажутся простыми, но более сложные случаи (например, поля, ссылающиеся на другие поля в цепочках или циклах, выражения, содержащие анонимные типы) - нет.
См. Блог Эрика Липперта для более подробного объяснения: Почему нет var на полях?
Это не столь просто как реализация var в методе, так как также необходимо взять в учетную запись различные модификаторы и атрибуты как так:
[MyAttribute()] protected internal readonly var list = new List<T>();
То, что я действительно любил бы, является заключенной типом константой!
public const notFoundStatus = 404; // int
Парни компилятора просто не реализовали поддержку.
Это - полностью волшебство компилятора, и компилятор на самом деле не помещает что-то в IL, который говорит, "выясняют тип во времени выполнения", это знает тип и создает его в, таким образом, это, возможно, сделало это для участников также.
Это просто не делает.
Я вполне уверен, что, если бы Вы спросили фактического парня компилятора относительно команды компилятора C#, Вы получили бы что-то официальное, но нет никакого волшебного случая здесь, и должно быть возможно сделать то же для членских полей.
var
ключевое слово было изобретено конкретное для поддержки анонимных типов. Вы обычно НЕ собираетесь объявлять анонимные типы на уровне класса, и таким образом он не был реализован.
Ваш оператор в качестве примера
var myList=new List<string>
не очень хороший пример того, как использовать var
ключевое слово, так как это не для намеченной цели.