javascript React 从方法传递值

标签 javascript reactjs

在我编写的以下 API 代码中,当我调用方法 getData(pdf, data, X),

我收到一条returning:8的警报消息。

然后在主方法中,我收到 increaseheight A: 的警报 如何将值从 getData 传递到 main 函数?

import React from 'react';
import JSPDF from 'jspdf';
import 'jspdf-autotable';
import { setMoney } from './NumberFormatter';

export const generatePdf = (obj, save, orientation) => {
    const pdf = new JSPDF({
        orientation: obj.pageformat ? obj.pageformat : 'p',
        format: 'a4',
    });
    let dataArray = obj.dataArray;
    let Y_INCREMENT = 8;  

    dataArray.forEach(data => {
        let X = 20;
        let increaseheight = Y_INCREMENT;
        alert(Y_INCREMENT+" increaseheight1:"+increaseheight);
        increaseheight = getData(pdf, data, X);
        alert("increaseheight A:",increaseheight);
    });
}

const getData = (pdf, data, X) => {
    let returnheight = 8;
    alert("returning:"+returnheight);
    return returnheight;
}

最佳答案

看来你的做法是正确的。但是,在从 getData() 接收结果之前,下一行将被执行。这就是为什么你没有获得值(value)。你可以使用 Promise 来代替 - 例如你的 getData() 函数应该是这样的 -

const getData = (pdf, data, X) => {
  let returnheight = 8;
  //alert("returning:"+returnheight);
  return new Promise((resolve,reject) => {
    resolve(returnheight)
  });
}

-- 那么你应该这样调用它 -

getData(pdf, data, X).then(result => {
  increaseheight = result
  alert("increaseheight A:",increaseheight);
});

关于javascript React 从方法传递值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59915294/

相关文章:

javascript - JS - 它是什么类型的对象以及如何访问它

javascript - 如何在 react router dom v4 的嵌套路由中获取参数?

javascript - 如何在 react 中使用键/值对象

javascript - ES6 与 React,无法 setState - 'Cannot read property ' setState' of undefined'?

javascript - 使用传单js绘制多边形

javascript - token 输入无法访问 ASP.Net Web 方法

javascript - 如何解决Uncaught ReferenceError : bus is not defined? (vue.js 2)

javascript - PEG.js 匹配数组中的单词

reactjs - 不变失败 : You should not use <Route> outside a <Router>

javascript - python Selenium : Click a href ="javascript:()"