解决未处理的拒绝(TypeError):回调不是函数

时间:2018-01-09 05:33:23

标签: javascript

我正在编写一个函数,它进行API调用并从API调用返回数据。然后它必须进入一个调用callback()函数的新页面。当我运行代码时,我会导航到新页面,但是在几毫秒后,我收到一个错误,如下面的屏幕截图所示。我正在使用的代码是:

export function editPost(id, callback) {
  const request = axios.get(`${API}/posts/${id}`,{headers});
    return dispatch => {
      return request.then((data) => {
        callback();
        console.log(data);
        dispatch({
          type: EDIT_POST,
          payload: data
        })
      })
    }
}

我得到的错误信息如下所示:

unhandled_rejection

有人可以帮我解决这个问题吗?

3 个答案:

答案 0 :(得分:1)

调用editPost时它也期望第二个参数(回调函数)。

很高兴它帮助了你!

答案 1 :(得分:1)

您可以在调用之前检查回调是否已通过。

if (typeof callback === 'function') {
    callback();
}

答案 2 :(得分:0)

这里你需要直接使用

将状态作为道具从父级传递给子级
<childComponent {state1}={state1} {setState1}={setState1}/>

就这样

在您的情况下,callback 将被传递为

{callback}={callback}