在 map 函数内部分配一个 const 变量

32

我正在使用Reactivesearch,尝试在.map函数中赋值一个const变量。具体来说,像这样:

onAllData(data, streamData) {

    return (
        <div className="grid">
        {
            data.map((item) => 
                const propertyName = item.productName;

                <div className="flex-container card" key={item._id}>
                    <div className="content">
                        <p>{propertyName}</p>
                    </div>
                </div>
            )
        }
    );
}

const propertyName = item.productName; 给我造成了问题。Error states unexpected token

这可能吗?


如果您的函数有多个语句,则需要一个函数体:x=>{x+1;return 22},而不是x=>22。您可以简单地执行以下操作:data.map(({propertyName,id})=><div ... - HMR
2个回答

77

你需要将表达式语法转换为块语法,使用大括号和return:

        data.map((item) => {
            const propertyName = item.productName;

            return (<div className="flex-container card" key={item._id}>
                <div className="content">
                    <p>{propertyName}</p>
                </div>
            </div>)
        })

然而,你也可以使用解构来获取你的 propertyName,这样你就回到了一个表达式:

        data.map(({productName, _id}) =>
           <div className="flex-container card" key={_id}>
                <div className="content">
                    <p>{propertyName}</p>
                </div>
            </div>
        )

3

这是对箭头函数的不正确使用。

修复:

data.map(({productName, _id}) => (
   <div className="flex-container card" key={_id}>
       <div className="content">
            <p>{productName}</p>
        </div>
   </div>
);

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接