Reactjs 使用useEffect内部的useDispatch获取数据(代码正常但有错误)
我尝试使用useEffect通过useDispatch钩子从API获取数据:Reactjs 使用useEffect内部的useDispatch获取数据(代码正常但有错误),reactjs,react-redux,use-effect,Reactjs,React Redux,Use Effect,我尝试使用useEffect通过useDispatch钩子从API获取数据: const dispatch = useDispatch(); useEffect(() => {dispatch(actions.fetchSearch(submitValue))}, [submitValue, dispatch]); 其中submitValue-它是搜索查询的输入值。fetchSearch()如下所示: export const fetchSearch = (query) =&g
const dispatch = useDispatch();
useEffect(() => {dispatch(actions.fetchSearch(submitValue))}, [submitValue, dispatch]);
其中submitValue-它是搜索查询的输入值。fetchSearch()如下所示:
export const fetchSearch = (query) => {
return dispatch => {
const queryParams = 'http://190.75.199.65/api/products?count=20&sort_by=numberOfEntries&sort_order=DESC&page=1&search='+query;
axios.get(queryParams)
.then( res=> {
dispatch(fetchSearchSuccess(res.data));
}
)
};
})
我可以通过此代码获取数据,但始终发生错误:
effect函数不能返回函数以外的任何内容,函数
用于清洁
看起来您编写了useffect(async()=>…)或返回了
答应我。相反,在效果中编写异步函数并调用
马上
我试图在useEffect内部创建异步函数,但错误相同,或者可能是我做错了什么。尝试执行以下操作:
const dispatch = useDispatch();
useEffect(() => {
(async () => {
await dispatch(actions.fetchSearch(submitValue));
})();
}, [submitValue, dispatch]);
我认为这是因为您直接调用了一个异步函数,并且它返回了一个useffect中的承诺。代码在没有任何更改的情况下工作
const dispatch = useDispatch();
useEffect(() => {dispatch(actions.fetchSearch(submitValue))}, [submitValue, dispatch]);
只是忘了删除旧的useEffect。嘿,现在尝试在内部函数代码工作中添加async,我忘了删除另一个useEffect!谢谢!