У меня есть следующий конструктор и функция в компоненте реакции, который я создал.React setState не работает
constructor() {
super()
this.state = {
error: false
}
}
handleSubmit(e) {
e.preventDefault()
const email = this.refs.email.value
const password = this.refs.password.value
const self = this
firebase.auth().signInWithEmailAndPassword(email, password).then(
function(result) {
const location = self.props.location
if (location.state && location.state.nextPathname) {
self.context.router.replace(location.state.nextPathname)
} else {
self.context.router.replace("/home")
}
// User signed in!
console.log("User signed in!")
}).catch(function(error) {
this.setState({error: error}) // Error points to this line
})
}
я получаю следующее сообщение об ошибке в консоли:
Uncaught TypeError: Cannot read property 'setState' of undefined
Может кто-нибудь помочь моему идентифицировать проблему?
вам нужно использовать 'refs' для получения значений ? Если компонент является элементом 'input', вы можете использовать событие onChange и обновлять переменную со значением. –
Есть ли польза от использования этого над 'refs'? –
Refs должен быть последним средством, когда вы не можете делать то же самое с событиями, состояниями или реквизитами в соответствии с документацией. Также мелкий рендеринг не работает при тестировании модулей с ними. –