扫码关注官方订阅号
点击按钮请求ajax,如果成功则按钮不能再点击并变灰色。这样做是为了防止重复点击,在react中该怎么写呢?
认证高级PHP讲师
在state保存一个属性,比如叫做disabled,默认为false
在发送ajax之前,把disabled用setState设为true
ajax返回结果,如果没有成功,那么再用setState把disabled设为false
回答用react redux的情况,其实一样的,注意的几点:
上面提到的disabled,肯定是一个内部的状态,不建议用redux来储存,直接在组件内用state来储存比较合理
redux的话,你需要redux-thunk middleware来做异步的action creator,具体看文档
在调用action之前,用setState设为true,然后在this.props.loadData().then((data)=>{ // 这里通过判断data,设为false }).catch(()=>{ // 出错,设为false })
this.props.loadData().then((data)=>{ // 这里通过判断data,设为false }).catch(()=>{ // 出错,设为false })
微信扫码关注PHP中文网服务号
QQ扫码加入技术交流群
Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号
PHP学习
技术支持
返回顶部
在state保存一个属性,比如叫做disabled,默认为false
在发送ajax之前,把disabled用setState设为true
ajax返回结果,如果没有成功,那么再用setState把disabled设为false
回答用react redux的情况,其实一样的,注意的几点:
上面提到的disabled,肯定是一个内部的状态,不建议用redux来储存,直接在组件内用state来储存比较合理
redux的话,你需要redux-thunk middleware来做异步的action creator,具体看文档
在调用action之前,用setState设为true,然后在
this.props.loadData().then((data)=>{ // 这里通过判断data,设为false }).catch(()=>{ // 出错,设为false })