【发布时间】:2018-12-27 19:04:49
【问题描述】:
我有一个子组件表单,一旦用户停止输入,我就会传递和 updateDraft 函数。这是最好的处理方式吗?
const updateTimer = (props) => {
if (this.timeout) clearTimeout(this.timeout)
this.timeout = setTimeout(() => {
props.updateDraft
}, 5000)
};
const Form = (props) => {
return(
<Input type="text"
onKeyUp={updateTimer(props)}
onChange={props.onChange}
/>
)
}
【问题讨论】:
-
要求“最好的方法”就是要求固执己见的答案。不要以这种方式表达你的问题,而是陈述问题并寻求解决方案。让答案回答他们认为有效的解决方案,然后您让您选择您认为最好的解决方案。
-
只需添加一个提交按钮,如果单击该按钮,则只处理输入的数据。这条路线使您作为程序员以及可能仍想输入更多数据但停下来思考的用户更容易。但是,如果您正在谈论实时渲染功能,例如自动完成下拉菜单或类似的东西,只需使用
onchange并将输入的每个键推送到状态属性,然后在状态发生变化时处理状态中的数据。跨度>
标签: javascript reactjs