Передача параметра в функцию внутри литерала именованного объекта экспорта - PullRequest
0 голосов
/ 30 октября 2018

При использовании именованного экспорта для возврата литерала объекта, состоящего из функций, возможно ли передать параметр одной из этих функций?

Например, скажем, функция ниже возвращает условные результаты в зависимости от того, является ли пользователь администратором:

// gridConfig.js
function getColumnDefs(isAdmin = false) {
  // conditionally return columns
  return {
    orders: [ ... ], 
    ...
  }
}

export const config = {
  columnDefs: getColumnDefs(),
  rowDefs: getRowDefs(),
  ...
};

// main.js
import { config } from './gridConfig';

function doStuff() {
  const { columnDefs, rowDefs } = config;
  grid.columnDefs = columnDefs['orders'];
  ...
}

Если я добавлю параметр к вызову функции внутри экспорта, он скажет, что параметр не определен. Добавление параметра в псевдоним экспорта приводит к ошибкам синтаксиса. Даже если бы это позволило, мне неясно, куда я передаю свой параметр в main.js.

Есть ли способ передачи параметра при структурировании экспорта таким образом?

Ответы [ 2 ]

0 голосов
/ 30 октября 2018

Может быть, простота может быть полезна:)

export const config = (isAdmin) => ({
  columnDefs: getColumnDefs(isAdmin),
  rowDefs: getRowDefs(),
  ...
});



// Import

import { config } from '[...]'; // Placeholder path of import


const myConfigFalse = config(false);
const myConfigTrue = config(true);
0 голосов
/ 30 октября 2018
export const config = admin => ({
  columnDefs: getColumnDefs(admin),
  rowDefs: getRowDefs(),
});

// main.js
import { config } from './gridConfig';

function doStuff() {
  const { columnDefs, rowDefs } = config(admin);//get the admin variable set before this line
  grid.columnDefs = columnDefs['orders'];
  ...
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...