我正在使用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的情况下向对象添加更多的键和值,这使键入更容易、更快!它也可能看起来更好(取决于你是谁(。