首页 > 解决方案 > 我无法运行此 React 操作的返回语句

问题描述

下面的代码是一个 React 动作,应该分派给一个 reducer。我似乎无法运行 return 语句。我可以让它在数据变量声明的下方命中一个调试器,但就是这样。如果我尝试在调试器中运行其余代码,则会收到参考错误“返回不是函数”。我无法弄清楚我在这里缺少什么。任何帮助将不胜感激。提前致谢。

const baseUrl = 'http://localhost:3001'
export const signUp = (user) => {
let data = {
  method: 'POST',
  headers: {
    'Accept': 'application/json',
    'Content-Type': 'application/json'
  },
  body: JSON.stringify({ user })
}

   return dispatch => {
  fetch(`${ baseUrl }/signup`, data)
    .then(response => response.json())
    .then(user => {
      sessionStorage.setItem('user', user)

      dispatch({
        type: 'SET_USER',
        payload: user.current
      })


    })
    .catch(err => err)
}

}

标签: javascriptreactjsasynchronousredux

解决方案


好吧,如果您正在使用redux-thunk您的函数内部缺少参数,而目前您只有user. 尝试这个:

export const signUp = (dispatch, getState, user) => { ...your code }


推荐阅读