Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/reactjs/23.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Reactjs 使用useEffect内部的useDispatch获取数据(代码正常但有错误)_Reactjs_React Redux_Use Effect - Fatal编程技术网

Reactjs 使用useEffect内部的useDispatch获取数据(代码正常但有错误)

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

我尝试使用useEffect通过useDispatch钩子从API获取数据:

  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!谢谢!