React 表单与事件
一个简单是实例
在实例中我们设置了输入框 input 值value = {this.state.data}。在输入框值发生变化时我们可以更新 state。我们可以使用 onChange 事件来监听 input 的变化,并修改 state。
ar HelloMessage = React.createClass({
  getInitialState: function() {
    return {value: 'Hello W3CSchool!'};
  },
  handleChange: function(event) {
    this.setState({value: event.target.value});
  },
  render: function() {
    var value = this.state.value;
    return <div>
            <input type="text" value={value} onChange={this.handleChange} />
            <h4>{value}</h4>
           </div>;
  }
});
ReactDOM.render(
  <HelloMessage />,
  document.getElementById('example')
);
上面的代码将渲染出一个值为 Hello W3CSchool! 的 input 元素,并通过 onChange 事件响应更新用户输入的值。
实例 2
在以下实例中我么将为大家演示如何在子组件上使用表单。 onChange 方法将触发 state 的更新并将更新的值传递到子组件的输入框的 value 上来重新渲染界面。
你需要在父组件通过创建事件句柄 (handleChange) ,并作为 prop (updateStateProp) 传递到你的子组件上。
var HelloMessage = React.createClass({
  getInitialState: function() {
    return {value: 'Hello W3CSchool!'};
  },
  handleChange: function(event) {
    this.setState({value: event.target.value});
  },
  render: function() {
    var value = this.state.value;
    return <div>
            <Content myDataProp = {value}
              updateStateProp = {this.handleChange}></Content>
           </div>;
  }
});
ReactDOM.render(
  <HelloMessage />,
  document.getElementById('example')
);
当你需要从子组件中更新父组件的 state 时,你需要在父组件通过创建事件句柄 (handleChange) ,并作为 prop (updateStateProp) 传递到你的子组件上。实例如下:
var Content = React.createClass({
  render: function() {
    return  <div>
              <button onClick = {this.props.updateStateProp}>点我</button>
              <h4>{this.props.myDataProp}</h4>
           </div>
  }
});
var HelloMessage = React.createClass({
  getInitialState: function() {
    return {value: 'Hello W3CSchool!'};
  },
  handleChange: function(event) {
    this.setState({value: 'W3Cschool教程'})
  },
  render: function() {
    var value = this.state.value;
    return <div>
            <Content myDataProp = {value}
              updateStateProp = {this.handleChange}></Content>
           </div>;
  }
});
ReactDOM.render(
  <HelloMessage />,
  document.getElementById('example')
);
React 表单与事件的更多相关文章
- 七、React表单详解 约束性和非约束性组件 input text checkbox radio  select  textarea  以及获取表单的内容
		一.约束性和非约束性组件: 非约束性组: MV: <input type="text" defaultValue="a" /> 这个 default ... 
- react 表单获取多个input
		react 表单this.handleChange(key,e){ [key]:e.target.value} submit=()=>{ const {userName,age,status} ... 
- 20181019 记录 window.setTimeout('dofunction()',2000); -  layui form 表单提交 事件 -  F11全屏 事件 window.onresize
		1 延时事件 window.setTimeout('dofunction()',2000); 函数外面要有引号 如果没有引号 就不能延时执行 应该是内容进行eval,所以外层不是传递字符串的话,外层函 ... 
- form表单submit事件
		form表单submit事件同时会触发form表单中button按钮的click事件 <!DOCTYPE html> <html> <head> <meta ... 
- react表单事件和取值
		常见的表单包括输入框,单选框,复选框,下拉框和多文本框,本次主要总结它们在react中如何取值. 输入框 在之前有说过输入框,可以先给input框的value绑定一个值,然后通过input框的改变事件 ... 
- react 表单
		import React ,{PropTypes}from 'react'; import { render } from 'react-dom'; const styles={ mb10:{ mar ... 
- 翻译 | 玩转 React 表单 —— 受控组件详解
		原文地址:React.js Forms: Controlled Components 原文作者:Loren Stewart 译者:小 B0Y 校对者:珂珂君 本文涵盖以下受控组件: 文本输入框 数字输 ... 
- React 表单组件
		诸如 <input>.<textarea>.<option> 这样的表单组件不同于其他组件,因为他们可以通过用户交互发生变化.这些组件提供的界面使响应用户交互的表单 ... 
- [转]React表单无法输入原因----约束性和非约束性组件
		转自:http://blog.csdn.net/lihongxun945/article/details/46730835 表单是前端非常重要的一块内容,并且往往包含了错误校验等逻辑. React对表 ... 
随机推荐
- python多进程没有锁队列范例
			假设有一些任务要完成.为了完成这项任务,将使用几个过程.所以,将保持两个队列.一个包含任务,另一个包含已完成任务的日志. 然后实例化流程来完成任务.请注意,python队列类已经同步. 这意味着,我们 ... 
- web自动化测试(java)---元素定位
			和python类似,java-selenium也提供了很多种元素定位的方法,具体如下: findElement(By.id()) findElement(By.name()) findElement( ... 
- UFLDL 教程学习笔记(二)反向传导算法
			UFLDL(Unsupervised Feature Learning and Deep Learning)Tutorial 是由 Stanford 大学的 Andrew Ng 教授及其团队编写的一套 ... 
- js实现oss文件上传及一些问题
			关于兼容性问题,ie8以下的可以使用4.x的版本 一.引入sdk和jq <script src="http://libs.baidu.com/jquery/2.0.0/jquery.m ... 
- koa2搭建服务器
			首先初始化项目 npm init -y 安装koa2 npm install koa --save 项目根目录 新建 index.js //这是最基本的服务 const Koa = require(' ... 
- docker 安全
			由于容器运行在主机上,且与主机共用一套内核,因此在容器的安全使用上会涉及到容器本身以及主机的安全加固,如针对系统调用,系统资源,远程访问等都需要进行安全方面的考量. docker官网给出了简单的一些建 ... 
- How to translate virtual to physical addresses through /proc/pid/pagemap
			墙外通道:http://fivelinesofcode.blogspot.com/2014/03/how-to-translate-virtual-to-physical.html I current ... 
- mybatis教程之原理剖析
			MyBatis是目前非常流行的ORM框架,功能很强大,然而其实现却比较简单.优雅.本文通过代理的方式来看下其实现 方式一:传统API方式 @Test public void add() throws ... 
- [HEOI2016] 序列
			Description 有n个数,每个数有若干取值,但是只能在原数列的一个位置变换取值,求一个最长上升子序列,满足无论数列如何变化,这都是一个最长上升子序列. Solution 记录 \(l[i],r ... 
- 共识算法之POW
			简介 POW是proof-of-work的缩写,中译为:工作量证明,是比特币中采用的共识机制,也被许多公有区块链系统所采用(比如以太坊).工作量证明机制基础是哈希运算,因此要理解pow首先要明白哈希函 ... 
