我正在做一个简单的加密货币应用程序来显示每日价格和变化。当渲染具有 0 索引的视图以及第一枚硬币的信息时,将显示数据,但在使用 map 方法时,不会显示任何内容......下面是视图的代码:
<View style={styles.container}>
<ScrollView contenContainerStyle={styles.coinList}>
{this.state.coinList.map((coin, index) => {
alert (coin.symbol + ': ' + coin.price);
<CoinInfo
key={index}
symbol={coin.symbol}
name={coin.name}
price={coin.price}
change={coin.change}
active={false}
onPress={this.fonPress}
/>;
})}
</ScrollView>
<View/>
const styles = StyleSheet.create({
container: {
flex: 62,
backgroundColor: '#40137A',
alignItems: 'center',
justifyContent: 'center',
},
loading: {
justifyContent: 'center',
},
coinList: {
flex: 1,
flexDirection: 'row',
flexWrap: 'wrap',
justifyContent: 'space-around',
}
});
我使用警报来查看地图是否正常工作,它提醒我数组中 7 个硬币中的 8 个......
感谢您的帮助
使用 Array.map 方法时,应返回要添加到结果数组中的元素。
您会看到警报,因为函数正在运行,但由于您没有返回子元素,因此生成的数组没有任何要呈现的内容。
试试这个:
{this.state.coinList.map((coin, index) => {
alert (coin.symbol + ': ' + coin.price);
return <CoinInfo
key={index}
symbol={coin.symbol}
name={coin.name}
price={coin.price}
change={coin.change}
active={false}
onPress={this.fonPress}
/>;
})}
我建议您查看以下链接以更好地了解Array.map:
https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/map