gpt4 book ai didi

javascript - React 组件中的 key 和 id 有什么区别?

转载 作者:行者123 更新时间:2023-12-05 02:47:16 26 4
gpt4 key购买 nike

我在父组件中有这个。

          <RefreshSelect
isMulti
cacheOptions
id='a'
key = 'a'
components={makeAnimated()}
options={this.state['filter']['provider']}
onChange={this.handleChangeProvider}
/>
<RefreshSelect
isMulti
cacheOptions
id='b'
key='b'
components={makeAnimated()}
options={this.state['filter']['provider']}
onChange={this.handleChangeProvider}
/>

在这个子组件的定义中,我有根据 id/key 更新默认值的构造函数。

export default class RefreshSelect extends Component {
constructor(props) {
super(props);
// console.log(props)
// console.log(props.key)
if (props.key==''){
this.state = { value: [{ value: 'all', label: 'all', color: '#666666' }] };
}else if ( props.key=='a') {
this.state = { value: [{ value: '123', label: '123', color: '#666666' },
{ value: '234', label: '234', color: '#666666' },
{ value: '456', label: '456', color: '#666666' }] };
}else {
this.state = { value: [{ value: 'nvnvnvnvn', label: 'ksksksksks', color: '#666666' }] };
}
}

render() {
console.log(this.props)
return (
<Select
isMulti
defaultValue={this.state.value}
options={this.props.options}
components={makeAnimated()}
placeholder={this.props.label}
onChange={this.props.onChange}
/>
);
}
}


首先,我似乎无法分配 key 并在构造函数中访问它。这是为什么?其次,id和key有什么区别?我应该使用哪一个?什么时候使用?

最佳答案

key是一个特殊的 prop ,它帮助 React 识别列表中哪些项目已更改、添加或删除。应为组件数组中的元素提供键,以赋予元素稳定的身份

Array.from({ length: 5 }).fill(0).map((_,index) => <span key={index} />)

id 可能指的是 HTML attribute它将在 Select

实现的原始 DOM 元素中展开

此外,您可能不想使用 index as key

关于javascript - React 组件中的 key 和 id 有什么区别?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65066607/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com