import React,{Component,Fragment} from 'react'

 class App extends Component {
constructor(){
super() // 要想使用this必须使用super
this.state = {
postList:[
'item1',
'item2',
'item3'
],
inputValue:"test"
}
}
render(){
// jsx语法
return (
<Fragment>
<ul>
{
this.state.postList.map((value,index)=>{
return (
<li key={index}>{ value }
<button onClick={this.delete.bind(this,index)}>删除</button>
</li>
)
})
}
</ul>
<div> {this.state.inputValue} </div>
<div>
<textarea
value={ this.state.inputValue }
onChange={ this.handleInput.bind(this) }
name="" id="">
</textarea> <br/>
<button onClick={ this.submit.bind(this) }>发布</button>
</div>
</Fragment>
)
}
submit(){
console.log(0)
this.setState({
// postList:this.state.postList.push(e.target.value) 错误的,改变了postList原来的值,且要用this.setState设置postList
postList:[...this.state.postList,this.state.inputValue],
inputValue:""
})
}
handleInput(e){
// this.state.inputValue = e.target.value 错误的,不能直接赋值
// 需要bind(this)改变this指向,让this指向这个实例
this.setState({
inputValue:e.target.value,
})
}
delete(index){
// 删除操作需要保留一个副本,在副本上进行操作,该postList是局部的postList,不影响全局的postList
let postList = [...this.state.postList]
postList.splice(index,1)
// 数组删除操作用splice
this.setState({
postList,
})
}
} export default App

这样,就可以通过react语法简单实现表单提交增加、删除操作!

React---简单实现表单点击提交插入、删除操作的更多相关文章

  1. 百度小程序-form表单点击提交,input框内容不会清空

    百度小程序与微信小程序相似度90%.微信小程序转换为百度小程序,部分还是需要人工修改! 做了一个form留言表单,点击提交之后,input框第一次会清空,但是第二次就不会清空了! 不多说直接上代码! ...

  2. Python3.4 + Django1.7.7 搭建简单的表单并提交

    后面还有一个问题,是我把txt生成了,但是网页没有返回我还不知道,现在怎么直接返回txt并且展示出来txt 的内容,希望大牛不吝赐教 首先有一个问题 django1.7之前,这样用: HttpResp ...

  3. input 表单点击消失离开出现

    效果1: <input type="text" name="textfield" value="这里是提示内容" onclick=&q ...

  4. SQL Server 2012设置某用户对某些表的记录限制其删除操作

    第一步:用sa用户进入SSMS: 第二步:在安全性---用户上面点击右键---"属性": 第三步:在选择页中选择”安全对象“,点击”搜索“,弹出添加对象页面,这里默认为特定对象不用 ...

  5. 单链表的插入删除操作(c++实现)

    下列代码实现的是单链表的按序插入.链表元素的删除.链表的输出 // mylink.h 代码 #ifndef MYLINK_H #define MYLINK_H #include<iostream ...

  6. 一次作业过程及其问题的记录:mysql建立数据库、建表、查询和插入等

    前言 这次的作业需要我建立一个小的数据库. 这次作业我使用了mysql,进行了建库.建表.查询.插入等操作. 以下是对本次作业相关的mysql操作过程及过程中出现的问题的记录. 正文 作业中对数据库的 ...

  7. Maven web项目(简单的表单提交) 搭建(eclipse)

    我们将会搭建一个,基于Maven管理的,具有简单的表单提交功能的web项目,使用DAO--service--WEB三层结构,服务器使用Tomcat 1 项目基本结构的搭建 左上角File---> ...

  8. Jquery 实现表单提交按钮变灰,防止多次点击提交重复数据

    表单提交时候我们应该控制提交按钮,不能点击多次进行数据的重复提交.要不然就会有冗余的重复的数据在系统中,造成系统出现数据垃圾.jQuery很简单的就可以实现对表单提交按钮控制,下面就是相关的例子和代码 ...

  9. PHP简单利用token防止表单重复提交

    <?php /* * PHP简单利用token防止表单重复提交 * 此处理方法纯粹是为了给初学者参考 */ session_start(); function set_token() { $_S ...

随机推荐

  1. Nginx实现负载均衡的简单案例

    七层负载均衡的实现(Nginx): 基于URL等应用层信息的负载均衡,一般使用Nginx来实现 Nginx的proxy是它一个很强大的功能,实现了7层负载均衡 功能强大.性能卓越.运行稳定 配置简单灵 ...

  2. Golang 之协程详解

    转自:https://www.cnblogs.com/liang1101/p/7285955.html 一.Golang 线程和协程的区别 备注:需要区分进程.线程(内核级线程).协程(用户级线程)三 ...

  3. [LeetCode] 132. Palindrome Partitioning II_ Hard tag: Dynamic Programming

    Given a string s, partition s such that every substring of the partition is a palindrome. Return the ...

  4. Scala面向对象详解

    Scala的包(作用域) package com.jh.scala 等同于 package jh \n package scala 等同于 package com.jh{ package scala ...

  5. python之xml模块

    # XML 模块的操作参考链接 # http://www.cnblogs.com/yuanchenqi/articles/5732581.html

  6. 如何执行shell命令

    可使用 git 命令行来执行shell命令,如 D 盘下的一 shell 脚本 test.sh 如下: echo "Hello world" 打开命令行,输入命令执行: 转载请注明 ...

  7. Gartner容器市场指南中国语境:容器成为新常态,灵雀云等本地厂商在选择中占据优势

    在2019年2月“ China Summary Translation: 'Market Guide for Container Management Software'”的报告中,Gartner认为 ...

  8. oo第一次作业

    前言: 这是一篇面向对象作业总结,作业内容是对多项式进行求导,一共有三个阶段,具体要求不详述,第一阶段只要求’+’连接coeff*x^pow的形式,第二次支持*连接的幂函数及三角函数,第三次则需要支持 ...

  9. mysql杯观锁与乐观锁

    悲观锁与乐观锁是两种常见的资源并发锁设计思路,也是并发编程中一个非常基础的概念.本文将对这两种常见的锁机制在数据库数据上的实现进行比较系统的介绍. 悲观锁(Pessimistic Lock) 悲观锁的 ...

  10. SQL中sysname数据类型的含义(转)

    sysname SQL Server 实例包括用户定义的名为 sysname 的数据类型.sysname 用于表列.变量以及用于存储对象名的存储过程参数.sysname 的精确定义与标识符规则相关:因 ...