开发者问题收集

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

2018-01-09
6552

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

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个回答

您可以在调用回调之前检查它是否已经传递。

if (typeof callback === 'function') {
    callback();
}
Vũ Nhật Anh
2018-01-09

调用 editPost 时,它也需要第二个参数(回调函数)。

很高兴它对您有帮助!

ricky
2018-01-09

在这里你只需要使用

<childComponent {state1}={state1} {setState1}={setState1}/>

将状态作为道具从父级直接传递给子级

就是这样

在你的情况下 callback 将被传递为

{callback}={callback}
champion-runner
2021-03-21