- xml - AJAX/Jquery XML 解析
- 具有多重继承的 XML 模式
- .net - 枚举序列化 Json 与 XML
- XML 简单类型、简单内容、复杂类型、复杂内容
我正在根据以下页面实现以下代码:https://facebook.github.io/react/docs/forms.html
class Reservation extends React.Component {
constructor(props) {
super(props);
this.state = {
isGoing: true,
numberOfGuests: 2
};
this.handleInputChange = this.handleInputChange.bind(this);
this.handleSubmit = this.handleSubmit.bind(this);
}
handleInputChange(event) {
const target = event.target;
const value = target.type === 'checkbox' ? target.checked : target.value;
const name = target.name;
this.setState({
[name]: value
});
}
handleSubmit(event) {
event.preventDefault();
let data = {
isGoing: this.state.isGoing,
numberOfGuests: this.state.numberofGuests
}
/* Send data in ajax request here */
}
render() {
return (
<form onSubmit={this.handleSubmit}>
<label>
Is going:
<input
name="isGoing"
type="checkbox"
checked={this.state.isGoing}
onChange={this.handleInputChange} />
</label>
<br />
<label>
Number of guests:
<input
name="numberOfGuests"
type="number"
value={this.state.numberOfGuests}
onChange={this.handleInputChange} />
</label>
<input type="submit" value="Submit" />
</form>
);
}
}
我对此有一些疑问:
render
函数。对我来说,这没什么意义。this.setState()
和使用 this.state.numberOfGuests
实际访问状态之间可能存在延迟,这是否意味着这段代码可能会在设置之前获取状态?如果是这样,为什么官方 React 文档中建议使用这段代码?如果不是,为什么不呢?最佳答案
关于第二点,是的,handleSubmit
可以在 handleInputChanged
中的状态更新完成之前运行,这在逻辑上是可能的。这在 React 文档中没有提到,或者通常是任何人关心的原因是因为 setState
函数运行真的很快。作为一个实验,我做了 a codepen to determine the average time taken for setState to run .似乎大约需要 0.02 毫秒。没有人可以更改他们的输入,然后在不到那个时间的时间内提交表单。事实上,handleSubmit
中的 e.preventDefault()
调用无论如何都花费了将近四分之一的时间。
如果在继续之前 setState
已经完成是绝对重要的情况,那么您可以使用回调函数来 setState
,例如
this.setState({
colour: 'red'
}, () => {
console.log(this.state.color)
});
然后 red
将始终 被记录,这与可能记录先前值的以下情况相反。
this.setState({
colour: 'red'
});
console.log(this.state.color);
关于javascript - 了解 ReactJS 受控表单组件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43010779/
为什么 React 提示受控/不受控输入? value一开始就设置为this.state.text,this.state.text在constructor中设置code> 到 ''。 import R
我在 SCM 工作,使用各种工具(Subversion、Clearcase、TFS、Perforce)和技术(主要是 .NET、Java)。在我开始工作之前,正常的业务顺序是创建一个受控分支。 我将受
我想在单击“恢复默认值”按钮时恢复所有输入字段和总计的默认值,但它不起作用。在我到目前为止的代码中,所有元素都包含在网格中。 我提到的SO问题: 将所有元素包装在表单或 div 中并调用 reset(
我一直在努力以编程方式打开/关闭 React-Select 组件,同时仍然保留选择元素的正常单击功能。 我需要通过 JavaScript 以编程方式打开选择,我使用 menuIsOpen 属性来工作。
我这里有一个具体案例,我需要一些安全建议。基本上我的问题是“如果我控制数据库中的内容(没有用户提交的数据),以 HTML(通过 AJAX)返回数据库查询的结果是否存在安全问题?” 这是正在发生的过程:
我是一名优秀的程序员,十分优秀!