搜索是完美的,一切都很好,但是会收到此警告。
按任何键启动搜索方法时都会收到此警告。
“ Song_ID”,“ Song_Name”和“ Image”是SQL数据库中的变量名。
-我看着其他问题,但这对我没有任何帮助。
这是错误所在的代码:
return (
<View>
<ScrollView>
{musicList.map(songObj => {
return (
<View style={styles.resultsContainer}> /// Its written that the erorr in this line
<TouchableOpacity onPress={this.GetListViewItem.bind(this, songObj.Song_Name)}>
<Text style={{ fontSize: 16 }} key={songObj.Song_ID}>
{songObj.Song_Name}</Text>
<Image source={{ uri: songObj.Image }} style={styles.img} />
</TouchableOpacity>
</View>
);
})}
</ScrollView>
</View>
);
}
我不知道将钥匙放在哪里和/或它是什么意思,我尝试了很多次,但操作不顺利。
如果需要更多详细信息,请告诉我,我会插入正确的代码。
答案 0 :(得分:2)
您应该将密钥添加到map
内最外面的组件上。您的情况是View
。试试这个:
return (
<View>
<ScrollView>
{musicList.map(songObj => {
return (
<View style={styles.resultsContainer} key={songObj.Song_ID}>
<TouchableOpacity onPress={this.GetListViewItem.bind(this, songObj.Song_Name)}>
<Text style={{ fontSize: 16 }}>
{songObj.Song_Name}</Text>
<Image source={{ uri: songObj.Image }} style={styles.img} />
</TouchableOpacity>
</View>
);
})}
</ScrollView>
</View>
);
}
添加key
道具可以使反应优化渲染,因此建议您添加它。阅读the docs了解更多信息。