reactjs - 使用反应钩子提交后清除输入
问题描述
按钮提交后如何清除输入?我提交后输入的文本仍然存在。
非常感谢并非常感谢。再次感谢
const [value, setValue] = useState("");
const handleInput = e => {
setValue(e.target.value);
};
const onSubmit = (e) => {
e.preventDefault();
setValue("");
}
{
dbdata.map(item => {
return(
<div className="card mb-5" key={item._id} style={{maxWidth:"70%",height:"70%"}} >
<img src={item.photo} className="card-img-top" alt="..." style={{maxWidth:"100%",height:"100%"}} />
<div className="card-body" >
<h6 className="card-text">{item.reviews.length} Reviews
<form className="input-group mb-3" onSubmit={onSubmit}>
<input type="text" className="form-control" placeholder="add a post onChange={handleInput} value={value} />
<div class="input-group-append">
<button type="submit" class="btn btn-primary" onClick={(e) => {
makePost(value, item._id)}} type="button">Post</button>
</div>
</form>
</div>
</div>
)
})
}
解决方案
您可以尝试使用 onSubmit 函数添加表单标签,该函数在阻止提交表单的默认行为后将值设置为空字符串
编辑:我看到你有一个 makePost 函数,我想你可以把这个函数的代码移到我的 onSubmit 中,或者把我的代码放在你的 makePost 函数中
const [value, setValue] = useState("");
const handleInput = e => {
setValue(e.target.value);
};
const onSubmit = (e) => {
e.preventDefault();
setValue("");
}
<div className="input-group mb-3">
<form onSubmit={onSubmit}
<input type="text" className="form-control" placeholder="add a post" onChange={handleInput} value={value} /></form>
<div class="input-group-append">
<button type="submit" class="btn btn-primary" onClick={(e) => {makePost(value, item._id)}} type="button">Post</button>
</div>
</div>
推荐阅读
- odoo - 获取合作伙伴(包括其子代)发票
- python - 使用python我可以平行复制一行x,y,z点,使x和z保持不变,y增加指定的间距吗?
- java - 订阅远程 rospy 发布者
- javascript - npm run build 不会生成 dist 文件
- azure - 我们已申请 Microsoft Non For Profit 计划并获得积分。如何将积分应用于 Azure?
- yolo - 如何解决谷歌一键登录中的“无可用凭据”问题?
- microsoft-graph-api - 如何为 Market Place 中发布的 Microsoft Teams App 集成 Microsoft Graph API?
- devops - 操作系统从rhel6升级到rhel7.7后如何升级icinga2库?
- python - 如何通过传递数据框列从另一个数据框列中搜索索引
- ios - appDelegate 中的委托功能不会更改导航栏颜色