У меня есть два метода в App.J, как показано ниже.
function abc () {
const a = ["Saab", "Volvo", "BMW"]
}
function def() {
// I want to use abc() array value of**a** here in def()
}
Как этого добиться?
Если вы не хотите изменять содержимое массива a, просто верните его из abc() и внутри def() добавьте a = abc().
импортировать React, {useState} из «реагировать»; импортировать Папу из papaparse; экспортировать функцию по умолчанию App() { const [data, setData] = useState([]); const handleFile =(e) =>{ Papa.parse(e.target.files[0],{ header:true,skipEmptyLines:true, Complete:function(result){ const filterResultArray =[]; filterResultArray.push(result. data); setData(filterResultArray); //FilterResultArray Имея значение } }) } const CalculationMapping = ()=> { console.info(data); //здесь данные не отображаются }





Просто определите функцию abc следующим образом:
function abc () {
const cars = ["BMW", "Volvo", "Saab"];
return cars;
}
И ваша функция def будет такой:
function def () {
const carsFromAbc = abc();
console.info(carsFromAbc)
}
def(); // ["BMW", "Volvo", "Saab"]
Но если у вас есть два метода, как показано ниже, function handleFile (e) { Papa.parse(e.target.files[0],{ header:true,skipEmptyLines:true, Complete:function(result){ const filterResultArray =[]; filterResultArray .push(result.data); }) }) } function CalculationMapping () { //здесь я хочу прочитать значение filterResultArray ..Как получить доступ }
В этом случае вы можете использовать состояния, чтобы иметь доступ к массиву во всех ваших функциях. Подробнее о состояниях: response.dev/learn/managing-state
импортировать React, {useState} из «реагировать»; импортировать Папу из papaparse; экспортировать функцию по умолчанию App() { const [data, setData] = useState([]); const handleFile =(e) =>{ Papa.parse(e.target.files[0],{ header:true,skipEmptyLines:true, Complete:function(result){ const filterResultArray =[]; filterResultArray.push(result. data); setData(filterResultArray); //FilterResultArray Имея значение } }) } const CalculationMapping = ()=> { console.info(data); //здесь данные не отображаются }
Вы должны определить функцию CalculMapping внутри функции приложения.
Это было определено в моем реальном коде. Но в консоли я не получаю значение import React, { useState } из «реагировать»; импортировать Папу из papaparse; экспортировать функцию по умолчанию App() { const [data, setData] = useState([]); const handleFile =(e) => { Papa.parse(e.target.files[0], { header:true,skipEmptyLines:true, Complete:function(result) { const filterResultArray =[]; filterResultArray.push(result. data); setData(filterResultArray); //FilterResultArray Имея значение } }) } const CalculationMapping = ()=> { console.info(data); //здесь данные не отображаются } }
Вот более простая версия вашего кода. Вы следуете этому шаблону? импортировать React, {useState} из «реагировать»; импортировать Папу из «papaparse»; экспортировать функцию по умолчанию App() { const [data, setData] = useState([]); const handleFile = (e) => { setData("Test"); }; const CalcMapping = () => { console.info(data); }; дескрипторФайл(); ВычислитьСопоставление(); }
Или еще одна практика: вы можете использовать функцию стрелки, как здесь:
const abc = () => ["Saab", "Volvo", "BMW"]
Затем функцию def и запустите ее.
function def() {
const abcValue = abc()
console.info(abcValue)
}
// run
def()
Вы можете просто извлечь массив из функции abc?