美文网首页
受控组件和非受控组件

受控组件和非受控组件

作者: sweetBoy_9126 | 来源:发表于2019-12-05 16:24 被阅读0次

受控组件

受控组件如果这个组件的状态是受react控制的就是受控组件,比如

const [name, setName] = useState('lifa')
  return (
    <div>
      <input type="text" value={name}/>
    </div>
  )

上面的input里的name是默认我们的state是'lifa',如果我们直接在页面中修改,会发现不管我们输入什么input里的内容都不会变,原因react的ui的渲染是由state决定的,如果state不变那么ui就不会重新渲染
解决办法:在onChange的时候修改state

<input type="text" value={name} onChange={(e) => setName(e.target.value)}/>

上面的这个input状态受react来控制的,所以是受控组件,我们修改它的值需要通过修改它依赖的state才可以修改它,如果我们不想修改它的state,那么就需要用到非受控组件

非受控组件

<input type="text" defaultValue={name}/>

上面的input里的value用了defaultValue也就是用了默认的input的值,所以不会受到react的控制,我们可以直接修改
问题:那我们怎么拿到这个非受控组件的值哪?
方法:通过ref

const refInput = useRef<HTMLInputElement>(null)
  const x = () => {
    console.log(refInput.current!.value)
  }
  return (
    <div>
      <input type="text" defaultValue={name} onChange={x} ref={refInput}/>
    </div>
  )

这样我们在修改的时候就能拿到input里的值了

相关文章

  • 受控组件和非受控组件

    受控组件和不受控组件 受控组件是指:数据来源比较单一,非受控组件来源比较复杂。我们 应该尽量的避免使用非受控组件,...

  • React基础篇之收集表单数据

    非受控组件 受控组件

  • 受控组件 和 非受控组件

    概览 文章内容选自陈屹的《深入React技术栈》,本文的主题是介绍受控组件与非受控组件。 内容 1、受控组件(Re...

  • 受控组件和非受控组件

    受控组件 受控组件如果这个组件的状态是受react控制的就是受控组件,比如 上面的input里的name是默认我们...

  • 受控组件和非受控组件

    受控组件: 非受控组件-使用refref第一种写法: ref第二种写法: String Ref(已过时,会被移除)...

  • 受控组件和非受控组件

    非受控组件 1 .类似于传统的HTML表单输入,如果想要获取输入的值,从ref获取他们 2 .你需要自己从表单域中...

  • 受控组件和非受控组件

    其值由React控制的输入表单元素称为“受控组件”。 受控组件有两个特点:1.设置value值时,value由st...

  • 受控组件和非受控组件

    受控组件:input中的value值通过state值获取,onChange事件改变state中的value值,in...

  • 受控组件和非受控组件

    非受控组件 1 .类似于传统的HTML表单输入,如果想要获取输入的值,从ref获取他们 受控表单 1 .接受当前值...

  • 受控组件 和 非受控组件

    1.前言 之前一直没有看受控组件和非受控组件,今天抽空来 捋一下 2. 基础 首先明确受控组件和非受控组件都指的是...

网友评论

      本文标题:受控组件和非受控组件

      本文链接:https://www.haomeiwen.com/subject/ghtjgctx.html