1
我剛剛開始嘗試在Redux的一些教程後反應和反應,我在控制檯收到一個錯誤:陣營+終極版菜鳥 - 提交表單數據
警告:無狀態的功能組件不能給予參考(請參閱參考 通過登錄創建的FieldGroup中的「用戶名」)。試圖訪問這個 裁判將失敗。
什麼是傳遞表單字段輸入值到我的提交按鈕的正確方法?這些值是否應該進入redux商店?閱讀文檔後:https://reactjs.org/docs/refs-and-the-dom.html#a-complete-example似乎我應該避免在這種情況下參考。所以,沒有參考如何獲得提交按鈕的輸入值?謝謝你的幫助。
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
}