javascript - 条件(动态)解构

标签 javascript reactjs ecmascript-6 destructuring

根据所选语言,我需要销毁对象并获得所需的值。
我该怎么做才能不破坏整个对象?

const translate = {
   "navMenu1": {
      "en": "Menu 1",
      "ru": "Меню 1"
   },
   "navMenu2": {
      "en": "Menu 2",
      "ru": "Меню 2"
   },
   "navMenu3": {
      "en": "Menu 3",
      "ru": "Меню 3"
   }
}

const Header = props => {
  const { lang } = props;

  const {
    navMenu1,
    navMenu2,
    navMenu3
  } = translate;

  return (
    <header className={cnGreetingHeader}>
      <div>-Logo-</div>
      <nav className={cnNav}>
        <div className={cnItem}>{navMenu1[lang]}</div>
        <div className={cnItem}>{navMenu2[lang]}</div>
        <div className={cnItem}>{navMenu3[lang]}</div>
      </nav>
    </header>
  );
};

我想要的

<div className={cnItem}>{navMenu1[lang]}</div> 

使用

<div className={cnItem}>{navMenu1}</div>

重要提示:如果可能的话,我想要一个使用解构赋值的答案。

最佳答案

虽然你问的是解构,但你可以只映射对象值,它更具可扩展性,当你有更多的导航项时会发生什么?

<nav className={cnNav}>
  {Object.values((navMenu) => (
    <div key={navMenu.id} className={cnItem}>
      {navMenu[lang]}
    </div>
  ))}
</nav>

关于javascript - 条件(动态)解构,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64304098/

相关文章:

javascript - jQuery Firefly 效果在 WordPress 中不起作用

ecmascript-6 - 接受一个解构对象作为箭头函数的唯一参数

javascript - 在通过数组解构赋值时先制作 ...rest 项

javascript - 如何使用 Protractor 测试 mdToast 的渲染文本?

javascript - 显示 :none 时在输入字段中切换

javascript - window.location.href 到子文件夹

javascript - 异步功能后强制 React 组件更新?

javascript - React-Bootstrap 和 Bootstrap-sass modal.scss 未加载

javascript - 如何将 Webfont Loader 与 Gatsby 一起使用?

javascript - 混合编译后无法从模块导入