当前,我想对我的函数实现Redux,因此它将存储在initialstate中。为此,我必须使用一个调度方法,该方法在函数内部调用该动作。因此,预期的结果是我可以使用Redux调度response.data.results,因此可以基于该结果在每个图像上添加一个like按钮。但这是一个稍后将解决的问题,因为我现在想重构代码,以便该函数将根据已提交的关键字或字母来调度数据。但是console.log显示错误:
不能在异步函数外使用关键字“ await”
onSearchSubmit = async term => {
return(dispatch) => {
const response = await unsplash.get('/search/photos', {
params:{ query: term },
//use the path on unsplash for image searching
});
dispatch(fetchImages(response.data.results));
// this.setState({ images: response.data.results });
}
}
render() {
return (<div className="ui container" style={{marginTop:'10px'}}>
<SearchBar onSubmit={this.onSearchSubmit}/>
{/* <ImageList images={this.state.images}/> */}
</div>);
}
答案 0 :(得分:0)
return(dispatch) => {
const response = await unsplash.get('/search/photos', {
params:{ query: term },
您将返回一个非异步函数并在其中调用await。尝试使其异步:
return async (dispatch) => {
const response = await unsplash.get('/search/photos', {
params:{ query: term },
答案 1 :(得分:0)
您的错误所指的await
在匿名lambda函数(dispatch) => {...
中,而不是onSearchSubmit
中。使该lambda异步,然后一切都会好起来。