You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

React Native嵌套函数未调用求助:内部函数为何无法执行?

问题原因及修复方案

你的问题核心是**secondFunction是柯里化的高阶函数**,调用方式完全错误。

看secondFunction的定义:

const secondFunction = dispatch => token => { ... }

这个函数需要分两步调用:第一步传入dispatch,返回一个新函数;第二步传入token才会执行内部逻辑。你现在直接写secondFunction(token),相当于把token当成了dispatch参数传入,真正需要的token参数根本没传,自然不会触发内部的console.log和后续逻辑。

修复方式一:正确调用柯里化函数

在getToken里调用secondFunction时,先传入dispatch,再传token:

// 替换原来的 secondFunction(token);
secondFunction(dispatch)(token);

修复方式二:调整函数结构(更直观)

如果不需要柯里化,直接把dispatch和token作为参数传入,代码可读性更高:

const secondFunction = async (dispatch, token) => {
  console.log('second function called');
  try {
    // 用async/await替代then,代码更简洁易维护
    const res = await axios.post(url, token);
    console.log(res.data);
    const response = res.data;
    // 这里可以添加处理response的逻辑,比如dispatch成功的action
  } catch (err) {
    dispatch({
      type: 'error_1',
      payload: 'error',
    });
  }
};

调用时直接传两个参数:

secondFunction(dispatch, token);

额外注意:修复语法错误

你的原secondFunction代码存在语法问题:axios.post的then块未闭合,try块也没写完,这些错误会导致代码无法正常运行,建议一并修正(上面的修复方案已处理这些问题)。

内容的提问来源于stack exchange,提问作者jdez

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.16 01:01:05