我正在开发一个简单的测验应用程序,并希望调度一个动作(称为 FreeResponseSubmit )以将用户的输入(称为 searchField )存储到答案对象中,然后重置表单字段。我已经尝试链接承诺,并且在使用用户输入来更新Answers对象的同时,第二个“ then”未按计划工作(我假设先前的promise的响应不可用),而searchField值永远不会重置。
是否承诺进行正确的选择,还是异步/等待更好的路线?我花了很多时间试图弄清楚这个问题(对这些框架仍然是新的),所以对您的帮助将不胜感激。
free-response.component:
handleClick(){
const searchFieldPromise= new Promise((resolve, reject)=>{
resolve(this.state.searchField);
});
searchFieldPromise.then((searchField)=>this.props.freeResponseSubmit(searchField))
.then((value)=>this.setState({searchField:""}));
}
答案 0 :(得分:1)
cat "/proc/sys/kernel/pid_max" 1>&2
方法中的逻辑实际上可以简化为:
handleClick
这是因为const { searchField } = this.state;
const { freeResponseSubmit } = this.props;
freeResponseSubmit(searchField);
this.setState({
searchField:''
});
的操作已经从组件状态获取了值,因此可以在redux中执行任何后续操作。因此,您只需清除组件的状态即可。