【发布时间】:2021-04-01 04:02:48
【问题描述】:
我正在尝试创建 pin 锁定屏幕。问题出现在 num pads 部分。它说“列表中的每个孩子都应该有一个唯一的“key”道具。”我不知道我的代码有什么问题。
这是我的数字键盘列表。
render() {
let numberPads = [
{id: 1,value: '1', style: styles.numPad},
{ id: 2,value: '2', style: styles.numPad },
{ id: 3,value: '3', style: styles.numPad },
{ id: 4,value: '4', style: styles.numPad },
{ id: 5,value: '5', style: styles.numPad },
{ id: 6,value: '6', style: styles.numPad },
{ id: 7,value: '7', style: styles.numPad },
{ id: 8,value: '8', style: styles.numPad },
{ id: 9,value: '9', style: styles.numPad },
{ id: 10,value: '', style: styles.keyPad },
{ id: 11,value: '0', style: styles.numPad },
{ id: 12,value: '11', style: styles.keyPad }
]
return (........) }
这是上面数字键盘的渲染方式。
render(){
......
return(
.....
<View style={styles.numPadContainer}>
{numberPads.map(numberPad => {
let numPad = numberPad.id != 12 ?
<TouchableOpacity style={numberPad.style} key={numberPad.id}
onPress={() => this.onPressNumberPad(numberPad.value)}
>
<Text style={styles.numText} >{numberPad.value}</Text>
</TouchableOpacity> :
<TouchableOpacity style={numberPad.style} key={numberPad.id}
onPress={() => this.onPressDeletePad()}
>
<Image source={require('../assets/images/clear-icon-50px.png')} />
</TouchableOpacity>
return (
numPad
)
})}
</View>
......
)
}
【问题讨论】: