React如何动态绑定input框的值

最近公司的项目选择了react作为前端开发技术框架,作为一名vue的忠实粉丝也不得不硬着头皮上了,毕竟要吃饭。只能一边学习一边开发了,今天踩的坑是 input输入框动态绑定数据后不能输入。查阅了一番终于了解了,先上代码

import React, {Component, Fragment} from "react";  // 首先还是引入需要使用的组件
class Fire extends Component {
   constructor(props) {
      super(props);
      this.state = {
          input_value:‘‘,
        }
    }
    rander(){
      return(
          <Fragment>
               <div>
                   <input  type=‘text‘ value={this.state.input_value}
                      className=‘input‘ />
                    <button className=‘add‘>新增<button>
               </div>
          <Fragment>
        )
    }
}    //这便是我动态绑定的数据,然而input框依然不能输入任何数据
                        

几经折腾发现React的数据绑定不是这个简单的,还需要添加监听时间才行,于是便继续写

<input type="text" value={this.state.input_value} onChange={this.input_change.bind(this)} className=‘input‘/>

// 这里使用了onChange事件去监听this.input_change,并且通过 .bind(this)将constructor传入到我们的方法中

接下来在render后面继续写我们的监听方法去绑定数据

input_change(e){
   this.setState({
       input_value:e.target.value
    })
}

到这里我们就可以随心所欲的在input框中输入代码了

完整代码如下

import React, {Component, Fragment} from "react";

class Fire extends Component {
    constructor(props){
        super(props);
        this.state={
            input_value:‘‘,
            list:[],
        }
    }
    render() {
        return (
            <Fragment>
                <div>
                    <input type="text" value={this.state.input_value} onChange={this.input_change.bind(this)} className=‘input‘/>
                    <button className=‘add‘>新增</button>
                </div>
                <ol className=‘list‘>
                    <li>这是一个待完成事项</li>
                    <li>这是一个待完成事项</li>
                </ol>
            </Fragment>
        )
    };
    input_change(e){
        this.setState({
            input_value:e.target.value
        })
    }
}

export default Fire

原文地址:https://www.cnblogs.com/yang656/p/11110588.html

时间: 2024-10-13 21:36:25

React如何动态绑定input框的值的相关文章

jq更改input框中value的值的正确方式

一直以为,更改input框value值的方式是: $('input').val('xxxx') 这样,页面的html显示的value还是原来的!!! 正确的方法,应该使用下面这种: $('input').attr('value','xxx') 只有这样,页面上input的value才会显示新的值!! 原文地址:https://www.cnblogs.com/luguankun/p/12446050.html

实现input框实时监听

一.大概有三种方法: 1.onchange() 2.oninput() 3.onpropertychange() 二.onchange() 该事件监听input的value是否改变,但需要注意只在input框失去焦点时触发,在ie.chrome.firefox等浏览器中都有效. 三.oninput() & onpropertychange() 要是你想只要input框的值发生改变,并不需要失去焦点就能触发,那么这对好基友就是你所需要的. oninput() & onpropertychan

js设置input框的选中值

/* 设置表单的值 */ function setValue(name, value) { var first = name.substr(0, 1), input, i = 0, val; if (value === "") return; if ("#" === first || "." === first) { input = $(name); } else { input = $("[name='" + name +

浅谈asp.net通过本机cookie仿百度(google)实现搜索input框自动弹出搜索提示

对于通过用户输入关键词实现自动弹出相关搜索结果,这里本人给两种解决方案,用于两种不同的情形. 常见方法是在数据库里建一个用户搜索关系表,然后通过用户搜索框输入的关键字异步调用数据表中的相关数据,显示在一个隐藏div中. 第二种方式也就是我现在着重讨论的方式,适用于单个用户,基于此用户以往的搜索数据来实现搜索提示功能.技术关键是记录下用户的以往搜索数据,写入cookie,然后页面从用户本机cookie调用数据. ok,下面进入正题.本文主要讲实现步骤,代码可根据自己实际需要更改. 一,如何写入co

Json判断文本框的值是否在数据库已存在

//署名:冯兵 //本人第一次写博客,如有何不对的地方,请指出,还望请多多见谅,或还有更简单的方法,望大神指教,谢谢! //表单 @using (Html.BeginForm("StockItemsIns", "StockItems", FormMethod.Post, new { id = "search" })) { <input class="input-small"  type="text"s

vue复选框获取值的补充

要通过vue的v-model获取选中复选框的值,可以用遍历对象的方式获取,代码如下: 1 <!DOCTYPE html> 2 <html xmlns="http://www.w3.org/1999/xhtml"> 3 <head> 4 <meta http-equiv="Content-Type" content="text/html; charset=utf-8"/> 5 <title>

input框中自动展示当前日期 yyyy/mm/dd

直接上代码: <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>input框中自动展示当前日期</title> </head> <body> <input type="text" id="input"> <script>

jQuery获取选中复选框的值代码实例

jQuery获取选中复选框的值代码实例:复选框是最为常用的表单元素之一,它提供了一种多选的方式,下面介绍一下如何使用jQuery获取选中的checkbox复选框的值.代码实例如下: <!DOCTYPE html> <html> <head> <meta charset=" utf-8"> <meta name="author" content="http://www.softwhy.com/"

使用jquery获取被选中checkbox复选框的值

使用jquery获取被选中checkbox复选框的值:checkbox是重要的表单元素,在很多多项选择中使用,下面就通过代码实例介绍一下如何获取复选框中所有被选中项的值,希望能够给需要的朋友带来一定的帮助.代码如下: <!DOCTYPE html> <html> <head> <meta charset=" utf-8"> <meta name="author" content="http://www.