React jsx属性避免重复的属性名称



我正在使用Nextjs我真的不知道该如何描述我的问题,但这里有一个例子。

在我的代码中,我得到了一些

const pathname = router.pathname
<NavItem pathname={pathname} ... />

有没有办法避免这种重名?让它变短?像这样的可能是

<NavItem {pathname} ... />

我不知道这是否可能,但这不是我第一次寻找那种写作风格的

感谢

我能想到的唯一方法就是使用spread语法。对于一个道具来说,这可能有些过头了,但对很多道具来说都很有用。


您首先定义这样的对象。

const { pathname } = router;
const shortened = {
pathname,
};

让我们逐行看。

第一行是使用对象破坏从router获取pathname密钥。这将简化稍后编写的对象。

第二行到第四行定义了一个名为shortened的对象(或者您想调用它的任何对象(。在它的内部,我们将pathname作为键和值一体传递(就像二合一(。这只是pathname: pathname的一种简写方式。

现在,让我们进入JSX!


让我们在这里使用JSX,看看它的作用。

<NavItem {...shortened} />

基本上,加上它正在做的是使用扩展语法(...(到"em";散布"对象,使其在解析时看起来像这样。

<NavItem pathname={pathname} />

所以,它只是得到关键和价值,并像那样传播出去。


您还可以在不更改JSX的情况下向对象添加更多的键和值,这使键入更容易、更快!它也可能看起来更好(取决于你是谁(。

相关内容

  • 没有找到相关文章

最新更新