在以下代码中,我无法理解event.target.value的工作方式。我浏览了文档,但不幸的是我无法遵循。谁能用简单的术语解释一下?
import React, { Component } from 'react';
import './NewPost.css';
class NewPost extends Component {
state = {
title: '',
content: '',
author: 'Max'
}
render () {
return (
<div className="NewPost">
<h1>Add a Post</h1>
<label>Title</label>
<input type="text" value={this.state.title} onChange={(event) => this.setState({title: event.target.value})} />
<label>Content</label>
<textarea rows="4" value={this.state.content} onChange={(event) => this.setState({content: event.target.value})} />
<label>Author</label>
<select value={this.state.author} onChange={(event) => this.setState({author: event.target.value})}>
<option value="Max">Max</option>
<option value="Manu">Manu</option>
</select>
<button>Add Post</button>
</div>
);
}
}
export default NewPost;
答案 0 :(得分:1)
"change" event是由 child: Column (
children:[
Row(
crossAxisAlignment: CrossAxisAlignment.center,
children: [
CircleAvatar(
backgroundImage: AssetImage("assets/images/1700.jpg"),
radius: 25,
),
SizedBox(width: 10,),
Column(
mainAxisAlignment: MainAxisAlignment.start,
crossAxisAlignment: CrossAxisAlignment.start,
children: [
Text("Test", style: TextStyle(color: Colors.white,fontSize: 17, fontWeight: FontWeight.bold),maxLines: 1,),
SizedBox(height: 5,),
Text("Testing the test. ", style: TextStyle(color: Colors.white,fontSize: 15),maxLines: 1,)
],
),
],
),
]
)
,<input>
和<select>
元素触发的标准DOM事件。 React中的<textarea>
处理程序和Event对象与本地对象几乎相同。
onChange
是事件开始的元素HTMLInputElement.value
是表单控件的当前形式所以...
event.target
是触发“更改”事件的event.target.value
的当前值对于大多数React中的<input>
事件处理程序,可能在MDN(Mozilla开发人员网络)中找到有关本机事件的最佳文档。
答案 1 :(得分:0)
React使用SyntheticEvent,它是浏览器本地事件的跨浏览器包装器。 React将事件标准化,以使它们在不同的浏览器中具有一致的属性。
这就是为什么当您在React中handle events时,它与本机浏览器事件相同。