Reactjs React项目脚本过梁错误缺失“;“关键”;迭代器中元素的属性
我正在从父组件呼叫Reactjs React项目脚本过梁错误缺失“;“关键”;迭代器中元素的属性,reactjs,eslint,Reactjs,Eslint,我正在从父组件呼叫 import { ChildClass } from '../../path/to/child' <ChildClass appData={appData} deviceOS={deviceOS} mobileFlag={mobileFlag} /> const ChildClass = props => { const appData = props.appDa
import { ChildClass } from '../../path/to/child'
<ChildClass
appData={appData}
deviceOS={deviceOS}
mobileFlag={mobileFlag}
/>
const ChildClass = props => {
const appData = props.appData,
mobileFlag = props.mobileFlag,
deviceOS = props.deviceOS
return(<div>Hello etc.</div>)}
export { ChildClass }
请建议任何解决方案。看起来您正在迭代中呈现您的子类组件。为此,React使用
键
组件来标识ChildClass
的每个实例,并控制每个组件的渲染/重新渲染
<ChildClass
key={uniqueId}
appData={appData}
deviceOS={deviceOS}
mobileFlag={mobileFlag}
/>
尽管从反应文档中考虑到:
如果项的顺序可能发生变化,我们不建议对键使用索引。这可能会对性能产生负面影响,并可能导致组件状态出现问题无论何时在迭代中显示元素列表,都应该添加一个带有唯一标识值的关键道具,以帮助您跟踪更改。如果您没有注意到,您的过梁可能会配置为失败
如果您要提到使用数组索引作为react键,那么请至少说明您通常不想这样做的原因。从列表&Keys-react-docs中:有一种非常特殊的情况,数组索引可以作为react-key来接受。@drewrese我将其作为注释添加。您是对的,这有助于理解为什么这会对性能造成不利影响。您能否提供一个代码示例,以及完整的错误消息,因为它可能会告诉您问题所在的确切行号,并且在许多情况下,提供解决方案。
<ChildClass
key={uniqueId}
appData={appData}
deviceOS={deviceOS}
mobileFlag={mobileFlag}
/>
const childItems = childs.map((child, index) =>
<ChildClass
key={index}
appData={appData}
deviceOS={deviceOS}
mobileFlag={mobileFlag}
/>
)