Day16 补充笔记React-Controlled Component

在学习React的表单时势必先了解什么是 React的受控组件(controlled component)非受控组件(uncontrolled component)

在受控组件中,表单的数据资料是由 React 组件所处理。而非受控组件的表单的资料数据是由 DOM 本身所处理的。

非受控组件不在今天的记录范围中,今天要记录的是如何在React受控组件(controlled component)中处理表单,也是前几日实作Forms时碰到了一些问题,想要记录下来。

当我们在处理表单的元素时像是 input、 select…
是根据使用者的输入内容来更新数据资料,而在React中当资料数据被改变时,component 的 state 或 props 也会跟着做改变, setState() 也会做更新,而当 setState() 更新时component 的预设行为会重新 render。

如此在使用者对表单进行输入资料,当资料中的值改变时,component会重新渲染表单,并更新 setState() ,像这样一个输入表单的 element,被 React 用这样的方式来控制它的值,就被称为「controlled component」。

在Forms的实作中

<input  type="text"  placeholder="Enter You Name"   onChange={inputEvent}  value={name} />
const inputEvent = (event)=>{       
   setName(event.target.value);
   };

在 input 的 onChange中指定一个inputEvent function,当使用者改变input中的值时会触发onChange,就会执行inputEvent function,透过event.target.value取值指定给setName( )。

当在input中输入或改变值时,event.target.value会得到一个新值,此时资料数据被改变,component 的 state 也会跟着做改变, setState() 会更新,会Update一个新的值给setName,(setName是Update後的值),然後Update後的的setName会把值给name(name是当前的值,就是更新後的值)

const onSubmit = () =>{
        setFullName(name);
    };
    

当button被触发执行onSubmit function,会将name(当前的值)指定给setFullName,最後setFullName中的值经由 setState()更新,最後将更新的值给FullName(name),然後就会显示最後更新的资料。


<<:  【DAY 17】微软生产力平台 Microsoft Power Platform 补充 — Code 与 No-Code

>>:  【Day16】密码破解 ─ 工具实作篇(一)

Day-29 特集:解构 destructing

在现行的ES6版JavaScript中,增加了以解构(destructuring)替物件或阵列赋值的...

今晚来聊聊铼德2349

晚上在看线图的时候,发现铼德2349有几个观点可以提出来跟大家分享。 在今年1月初时,跌破季线,这时...

【Day13】在Ezyme上装上相对应版本的适配器(Adapter)吧´・ᴗ・`

前面我们有大概提到Enzyme的优点及作用~ 这篇我们要直接来安装Enzyme和导入Enzyme来供...

【从零开始的Swift开发心路历程-Day9】打造美观的App版面!UI属性篇

我们设定好约束後,也来改变一下元件的外貌吧,这里将以UIButton为例来做个简单说明~此时点选元件...

Day [3] — this:建构物件 — JS之浸猪笼系列

如果你不知道这个系列为什麽叫这种激烈的名字可以看这篇: Day [0] — JS之浸猪笼系列 如果你...