Учитывая исходный код простой формы входа, см. ниже. Видите ли, я хочу использовать значение текстового поля username
, когда нажимаю кнопку отправки формы. Поскольку для получения значения мне нужна ссылка на фактический узел DOM, я устанавливаю переменную usernameElement для этого узла.
const Login = ({ onLogin }) => {
let usernameElement
const handleSubmit = event => {
event.preventDefault()
onLogin(usernameElement.value)
}
return <form onSubmit={handleSubmit}>
<input
type="text"
name="username"
ref={node => { usernameElement = node }}
/>
<button type="submit">Login</button>
</form>
}
Итак, как мне найти функциональный подход к этой проблеме или просто избавиться от переменной let
?
onLogin( event.target.querySelector('[name=username]').value );
, кроме игнорирования того, как мы это делаем в политике React. Я не говорю о большом приложении, а просто об этом крошечном компоненте, не использующем никаких подкомпонентов. - person Thomas   schedule 27.06.2017