使用无状态组件创建注册表单
Creating a registration form using Stateless Components?
有人可以给我看如何使用无状态组件构建表单的示例代码/解释吗?
我也找不到使用 refs 的材料 UI 表单示例。
注意:我正在使用材质 UI 组件。
这是我当前的创建表单:
class App extends React.Component {
constructor(props) {
super(props);
this.state = {
name: '',
school: '',
};
}
/*in order to access state from within function, I had to bind this when I made
the call to submitCandidate i.e. onClick={this.submitCandidate.bind(this)}
*/
submitCandidate(event){
event.preventDefault();
//assign the form fields to candidates object
var newCandidate = {
name: this.state.name,
school: this.state.school,
date: this.state.date
}
//inserts candidates object to database
Candidates.insert(newCandidate);
render() {
return (
<MuiThemeProvider muiTheme={getMuiTheme(lightBaseTheme)}>
<div>
<TextField
hintText={"Enter Your Name"}
floatingLabelText={"Name"}
value={this.state.name}
onChange={e => this.setState({ name: e.target.value })}
/>
<TextField
hintText={"Enter Your School"}
floatingLabelText={"School"}
value={this.state.school}
onChange={e => this.setState({ school: e.target.value })}
/>
<RaisedButton type="submit" label="Submit" onClick={this.submitCandidate.bind(this)} />
</div>
</MuiThemeProvider>
);
}
}
无状态组件意味着它无法存储状态。因此,您的状态需要存储在其他地方。现在首选的状态存储是 Redux。
不确定您是否熟悉 Redux。如果没有,我建议观看非常著名的丹·阿布拉莫夫(Redux创作者)Egghead.io 系列。
如果你熟悉Redux是如何实现FLUX模式的,你可以把你的状态(name
和school
)放到Redux存储中。此状态将由 Redux 操作更新。这些函数将通过props
和状态更新传递到组件中。
编辑 2017-05:
我们开始使用名为 redux-form
的库来处理 React+Redux 应用程序中的表单。它消除了很多布勒板,非常可测试。所以我肯定会推荐使用它。
相关文章:
- 可以'我无法提交AJAX注册表
- 如何从npm注册表中删除npm包
- 扩展如何读取注册表
- 流星 - 添加带有熨斗的路由后无法提交用户.路由器到登录和注册表单
- 单击按钮时切换html登录/注册表单
- Bookshelf注册表插件和节点循环依赖性错误
- 在注册表单上,表单字段不会保存在提交时自动填充的浏览器中.(ReactJs)
- 我正在尝试使用jqueryValidation引擎插件验证注册表单,有些验证无法正常工作
- 如何阻止浏览器要求在注册表单中保存电子邮件和密码
- 我试图使用引导模式类来制作一个弹出注册表单,但弹出没有'不起作用
- 使用自制的html表单注册/登录网站
- 通过注册表安装的Firefox插件是否可以使用updateURL
- 使用 Ajax、Jquery 或 JavaScript 在注册表单中添加验证码
- REST 服务未注册表单数据
- 流星:使用自动表单自定义注册过程
- JavaScript/jQuery分步注册表单
- 用户注册注册错误
- 是否有一种方法允许用户帐户(注册+注册)与javascript(角前端和节点,express服务器代码)
- 注册在表单中点击了哪个图像
- 使用javascript弹出窗口对时事通讯注册进行表单验证