/ / React + Bootstrap + значення Redux, що не працюють у формі - реагує, реагують-redux, реагують-bootstrap

Значення React + Bootstrap + Redux не працює у формі - реагує, реагують-redux, реагують-bootstrap

Я визначаю форму в Реагувати за допомогою Bootstrap і Redux з наступним кодом:

import React from "react";
import { FormGroup, ControlLabel, FormControl, HelpBlock, Button } from "react-bootstrap";
import { connect } from "react-redux";

import "./actions";

const _c = component => connect(s => s)(component);

const FieldGroup = ({ id, label, help, ...props }) => {
return (
<FormGroup controlId={id}>
<ControlLabel>{label}</ControlLabel>
<FormControl {...props} />
{help && <HelpBlock>{help}</HelpBlock>}
</FormGroup>
);
};

const LoginForm = _c(React.createClass({
render() {
return (
<form>
<FieldGroup
id="loginText"
type="text"
label="Text"
placeholder="Email"
value={this.props.user.email ? this.props.user.email[0] : ""}
/>
<FieldGroup
id="loginPassword"
label="Password"
type="password"
/>
<Button bsStyle="primary" bsSize="large">Login</Button>
</form>
);
}
}));

Це працює, і значення з'являється в полі "Ім'я користувача", але він не редагується. Я намагався змінити value={this.props.user.email ? this.props.user.email[0] : ""} до defaultValue={this.props.user.email ? this.props.user.email[0] : ""} і це робить його редагуванням, але значення за замовчуванням ніколи не з'являється. Що я роблю неправильно?

Відповіді:

0 для відповіді № 1

(Я хотів би прокоментувати, але я ще не маю 50 реперів)

Схоже, ваше початкове значення може бути undefined. Ти можеш console.log(this.props.user.email[0]) і побачите цю цінність?