#javascript #reactjs #redux
#javascript #reactjs #redux
Вопрос:
React Redux TypeError this.props.setEmailText не является функцией. Это проблема с привязкой, так как, когда я получаю реквизиты с помощью {…this.props}, все хорошо? https://codesandbox.io/s/reduxex1-f9sid
import React from "react";
export default class Auth extends React.Component {
constructor(props) {
super(props);
this.onEmailChange = this.onEmailChange.bind(this);
this.onPasswordChange = this.onPasswordChange.bind(this);
}
onEmailChange(e) {
this.props.setEmailText(e.target.value);
}
onPasswordChange(e) {
this.props.setPasswordText(e.target.value);
}
Комментарии:
1. Не могли бы вы поделиться тем, как вы передаете реквизиты
<Auth />
компоненту? Спасибо!
Ответ №1:
Вы переходите this.props.setEmailText
к onEmailChange
prop Auth
компонента, onEmailChange={this.props.setEmailText}
. Измените, чтобы использовать согласованное имя реквизита.
class AuthContainer extends React.Component {
render() {
return (
<Auth
email={this.props.email}
password={this.props.password}
setEmailText={this.props.setEmailText} // <-- use setEmailText
setPasswordText={this.props.setPasswordText}
/>
);
}
}
Теперь Auth
можно получить доступ к реквизиту
onEmailChange(e) {
this.props.setEmailText(e.target.value);
}