Я немного смущен тем, где лучше всего инициализировать значения состояния в следующем случае.
Поля являются динамическими в зависимости от ввода пользователя, я меняю метку и сообщение об ошибке, а такжестиль ввода путем добавления границы.
Должен ли я инициализировать реквизиты в контейнере, в котором выполняется mapStateToProps, или он должен быть инициализирован в редукторе?
Как инициализировать, не пропуская мои реквизитыв сторону избыточности и как я могу прочитать исходную стоимость, предоставляемую connect ()?
Могу ли я привести пример, пожалуйста?
У меня интерфейс выглядит следующим образом:
export interface IFormField {
Label: string,
Name: string,
ErrorMessage: string,
Text: string
}
export interface ILogInProps {
FirstName: IFormField,
Password: IFormField,
Email: IFormField,
Fetching: boolean,
Message?: string
}
LogIn.tsx
interface IProps{
onChange: (fieldName: string, value: string) => any;
FirstName: IFormField
LastName: IFormField
Email:IFormField
}
export class UserForm extends React.Component<IProps> {
public render() {
const { FirstName, Password, Email} = this.props;
return (
<form>
<Field name={FirstName.Name} label={FirstName.Label} value={FirstName.Text} ErrorMessage={FirstName.ErrorMessage} onChange={this.props.onChange}/>
<Field name={Password.Name} label={Password.Label} value={Password.Text} ErrorMessage={Password.ErrorMessage} onChange={this.props.onChange}/>
<Field name={Email.Name} label={Email.Label} value={Password.Text} ErrorMessage={Password.ErrorMessage} onChange={this.props.onChange}/>
<button type="submit">Submit</button>
</form>
);
}
}