を提出、私はちょうどアウトしようとして始めましたReduxの上のいくつかのチュートリアル後に反応し、反応して、私は、コンソールにエラーを取得しています:+ ReduxのNoobのに反応 - フォームデータに
警告:ステートレス機能コンポーネントはできませんrefを与えられます(ログインによって作成されたFieldGroupのref "username"参照)。この refへのアクセスは失敗します。
フォームフィールドの入力値を送信ボタンに渡す適切な方法は何ですか?これらの値はreduxストアに入るべきですか?ドキュメントを読んだ後:https://reactjs.org/docs/refs-and-the-dom.html#a-complete-example私はこの場合はrefsを避ける必要があるようです。だから、refsなしでどのように入力ボタンを送信ボタンに取得するのですか?助けてくれてありがとう。
Login.jsx
import React, {Component, PropTypes} from 'react';
import {Row, Col, FormControl, FormGroup, ControlLabel, HelpBlock, Checkbox, Button} from 'react-bootstrap';
export default class Login extends Component {
render() {
const { errorMessage } = this.props;
function FieldGroup({ id, label, help, ...props }) {
return (
<FormGroup controlId={id}>
<ControlLabel>{label}</ControlLabel>
<FormControl {...props} />
{help && <HelpBlock>{help}</HelpBlock>}
</FormGroup>
);
}
const formInstance = (
<Col xs={12} md={8} mdOffset={2}>
<code><{'Col xs={12} md={8}'} /></code>
<form>
<FieldGroup
id="formControlsEmail"
type="email"
label="Email address"
placeholder="Enter email"
ref="username"
/>
<FieldGroup
id="formControlsPassword"
label="Password"
type="password"
ref="password"
/>
<Checkbox checked readOnly>
Checkbox
</Checkbox>
<Button type="submit" onClick={(event) => this.handleClick(event)}>
Submit
</Button>
{errorMessage &&
<p>{errorMessage}</p>
}
</form>
</Col>
);
return formInstance;
}
handleClick(event) {
const username = this.refs.username
const password = this.refs.password
const creds = { username: username.value.trim(), password: password.value.trim() }
this.props.onLoginClick(creds)
}
}
Login.propTypes = {
onLoginClick: PropTypes.func.isRequired,
errorMessage: PropTypes.string
}