大多数的情况下,React 推荐使用受控元件(controlled component)来实作表单
如果要写一个 uncontrolled component,
可以使用 ref 从 DOM 取得表单的资料。
class NameForm extends React.Component {
constructor(props) {
super(props);
this.handleSubmit = this.handleSubmit.bind(this);
this.input = React.createRef();
}
handleSubmit(event) {
alert('A name was submitted: ' + this.input.current.value);
event.preventDefault();
}
render() {
return (
<form onSubmit={this.handleSubmit}>
<label>
Name:
<input type="text" ref={this.input} />
</label>
<input type="submit" value="Submit" />
</form>
);
}
}
在 React 的 render 生命周期里,
表单上的 value attribute 会覆写掉 DOM 的值。
由於在 component mount 後改变 defaultValue 属性,
不会造成任何在 DOM 里面的值更新。
要处理这种情况,
可以指定 defaultValue attribute 而非 value。
render() {
return (
<form onSubmit={this.handleSubmit}>
<label>
Name:
<input
defaultValue="Bob"
type="text"
ref={this.input} />
</label>
<input type="submit" value="Submit" />
</form>
);
}
defaultValue
:text / select / textarea inputdefaultChecked
:checkbox / radio input<input type="file">
让使用者,
能够从他们的装置选择上传
一个或多个档案。
在 React 里,
<input type="file" />
永远都是
uncontrolled component。
因为它的值是唯读,
只能被使用者设定,
而无法由程序码来设定。
<<: 第 12 天 范本变数加范本输入变数|template variables、template input variables
Vue的安装方式有很多种像我这次是使用CND的方式来使用Vue 首先呢我们可以先到Vue的网站 可以...
继续尝试纪录~ 尽量在本周看完Vue的教学,并且周末前完成Vue的作业吧~ 下周就能更积极的找工作来...
引言 昨天完成了最基本的一题,学了一些基本操作。 cat, wget 等,都是必备的工具,一定要学...
前言 延续昨天内容今天继续介绍常用 ES6 语法。 展开其余 展开运算符有几个用途 阵列 展开成个别...
Case01 与 Day17 范例的差异,除了从 Razor Tag Helper 改为 轻前端外,...