【问题标题】:How do I access an exported function in another exported function in same file?如何访问同一文件中另一个导出函数中的导出函数?
【发布时间】:2022-12-17 04:32:32
【问题描述】:

我正在尝试从 loadUser 函数中获取登录函数中的用户数据。但它拒绝运行,我不确定这里出了什么问题?

我认为您可以在同一个文件中调用导出函数?

// Login User
export const login = (formData) => async dispatch => {
  const config = {
    heraders: {
      'Content-Type': 'application/json'
    }
  }
  try {
    const res = await axios.post('/api/auth', formData, config);
    dispatch({
      type: LOGIN_SUCCESS,
      payload: res.data
    });
    console.log('Calling load user here?');
    loadUser();
    console.log('loadUser did not run?');
  } catch (err) {
    dispatch({
      type: LOGIN_FAIL,
      payload: err.response.data.msg
    });
  }
}

// Load User
export const loadUser = () => async dispatch => {
  console.log('Is this running');
  if (localStorage.token) {
    setAuthToken(localStorage.token);
  }
  console.log('GETTING USER');
  try {
    const res = await axios.get('/api/auth');
    dispatch({ 
      type: USER_LOADED,
      payload: res.data
    });
  } catch (err) {
    dispatch({ 
      type: AUTH_ERROR
    });
  }
}

我希望 loadUser 函数运行,但它没有运行。

【问题讨论】:

  • loadUser() 返回一个执行实际工作的函数,但您的代码不会调用该函数。

标签: javascript reactjs


【解决方案1】:

您应该能够像调用任何其他 JavaScript 函数一样,通过其名称从登录函数中调用 loadUser 函数。

以下是如何更新登录函数以调用 loadUser 函数:

// Login User
export const login = (formData) => async dispatch => {
  const config = {
    headers: {
      'Content-Type': 'application/json'
    }
  }
  try {
    const res = await axios.post('/api/auth', formData, config);
    dispatch({
      type: LOGIN_SUCCESS,
      payload: res.data
    });
    console.log('Calling load user here?');

    // Call the loadUser function, passing in dispatch as an argument
    loadUser()(dispatch);

    console.log('loadUser did not run?');
  } catch (err) {
    dispatch({
      type: LOGIN_FAIL,
      payload: err.response.data.msg
    });
  }
}

由于 loadUser 函数是一个将 dispatch 作为参数的 async 函数,因此您需要这样调用它:loadUser()(dispatch)

【讨论】:

    猜你喜欢
    • 2021-03-18
    • 2020-12-12
    • 1970-01-01
    • 2021-02-06
    • 2021-12-15
    • 1970-01-01
    • 1970-01-01
    • 2023-03-25
    • 2019-12-13
    相关资源
    最近更新 更多