Я использую React Table для извлечения данных из API и заполнения их в таблице. Я делаю вызов API и получаю данные. Когда у меня есть данные, я извлекаю поле, содержащее идентификаторы электронной почты, а затем создаю массив (emailList). Теперь я хочу использовать данные в emailList как часть тела в вызове POST API впоследствии. Таким образом, в приведенном ниже коде параметр получателей при вызове POST должен содержать данные emailList. EmailList объявлен как пустой массив глобально в методе рендеринга. С моей текущей настройкой я получаю неопределенную ошибку из-за проблем с областью действия. Как сделать значение доступным при вызове POST? Я просмотрел несколько ответов StackOverflow и попытался, но не получил результата.
columns: [
{
filterable: false,
Header: 'Action',
accessor: 'action',
Cell: (e) => (
<button
onClick={() => {
axios.get(URL, {
headers: {
'content-type': 'application/json',
'Name' : user.Name,
},
responseType: 'json',
})
.then((response) => {
let responseData = response.data.data;
function getEmailList(input, email) {
var output = [];
for (var i=0;i<input.length; ++i)
output.push(input[i][email]);
return output;
}
emailList = getEmailList(responseData, "email");
function fetchEmail() {
this.emailList = getEmailList(responseData, "email");
}
});
//console.log(new fetchEmail().emailList);
//Unable to get the value of emailList here
axios({
method: 'post',
url: URL2,
headers: {
'content-type': 'application/json',
'Name' : user.Name,
},
data: {
"topic": "product",
"message": {
"sender": "[email protected]",
//For illustration I have hardcoded the email arrays for recipients
"recipients": ["[email protected]", "[email protected]"],
"data": {
"text": "refresh"
},
"attachment": null,
"type": "",
},
},
})