javascript - 将参数传递给命名导出对象文字内的函数

标签 javascript ecmascript-6

当使用命名导出返回由函数组成的对象文字时,是否可以将参数传递给这些函数之一?

例如,假设下面的函数根据用户是否是管理员返回条件结果:

// 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 中传递我的参数。

以这种方式构造导出时是否有某种方式传递参数?

最佳答案

也许保持简单会很有用:)

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);

关于javascript - 将参数传递给命名导出对象文字内的函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53066959/

相关文章:

javascript - 如何让 React Native 像媒体播放器一样运行(可能是 "foreground")?

javascript - HTML 内容不会在电子邮件中呈现

javascript - 具有自身默认值的对象解构赋值

Javascript 对象比较和赋值

javascript - 电子邮件地址正则表达式验证

javascript - 来自指定变量的 jQuery 计数器

javascript - 为什么我调用 (mobx) extendObservable 没有触发重新渲染?

Javascript:设置数据结构:相交

javascript - 使用knockout.js从选择列表中检索值

javascript - 如何在树的下方更新 redux 状态