Mat*_*eri 0 javascript destructuring reactjs
我想知道如何.map使用 javascript 来破坏函数内的对象,我有 React js 组件,并且在return方法中我有以下代码:
return (
<>
{setItems.map(setItem => (
const { childContentfulPartFeatureSetLearnMoreOptionalTextTextNode: learnNode} = setItem
....
</>
Run Code Online (Sandbox Code Playgroud)
我有下一个错误:Parsing error: Unexpected token ... = setItem,我想这是什么
EsLint错误并用于// eslint-disable-next-line禁用它,但它不起作用。
UPD 完整返回码:
return (
<div className={generalServiceItemClassName} key={guuid()}>
{setItems.map(setItem => (
const { childContentfulPartFeatureSetLearnMoreOptionalTextTextNode: learnNode} = setItem
<div
key={guuid()}
className={cx(columnSizeClass, "service-items__item")}
data-test="service-items"
>
{setItem.learnMore ? (
<LearnMore
className="service-items__item-learn-more-container"
learnMoreLink={setItem.learnMore}
text={}
textClassName="service-items__item-texts-learn-more"
learnMoreText={learnNode ? learnNode.setItem : null}
>
{renderItem(setItem)}
</LearnMore>
) : (
renderItem(setItem)
)}
</div>
))}
</div>
Run Code Online (Sandbox Code Playgroud)
)
const表达式中不能有声明,并且当您使用箭头函数的简洁形式(后面=>没有{)时,主体是一个表达式。
不过,您可以在参数列表中解构。例如:
{setItems.map(({childContentfulPartFeatureSetLearnMoreOptionalTextTextNode: learnNode}) => (
// ...use `learnNode` here...
Run Code Online (Sandbox Code Playgroud)
在上下文中:
return (
<div className={generalServiceItemClassName} key={guuid()}>
{setItems.map(({childContentfulPartFeatureSetLearnMoreOptionalTextTextNode: learnNode}) => (
<div
key={guuid()}
className={cx(columnSizeClass, "service-items__item")}
data-test="service-items"
>
{setItem.learnMore ? (
<LearnMore
className="service-items__item-learn-more-container"
learnMoreLink={setItem.learnMore}
text={}
textClassName="service-items__item-texts-learn-more"
learnMoreText={learnNode ? learnNode.setItem : null}
>
{renderItem(setItem)}
</LearnMore>
) : (
renderItem(setItem)
)
}
</div>
))}
</div>
);
Run Code Online (Sandbox Code Playgroud)