【发布时间】:2020-12-15 13:59:13
【问题描述】:
我正在实现一个应用程序,在主屏幕上我有一个平面列表元素,每个项目内部都有一个卡片元素。
import React, { useEffect, useContext } from 'react';
import { Text, View, StyleSheet, FlatList } from 'react-native';
import {ListItem, Card} from 'react-native-elements';
import { Context as ParkingContext } from '../context/ParkingContext';
const HomeScreen = () => {
const { state: {records}, fetchParkings } = useContext(ParkingContext);
useEffect(() => {
fetchParkings();
},[])
return (
<View style={styles.container}>
<FlatList
data={records}
keyExtractor={item => item.recordid}
renderItem={({item}) => {
return (
<Card containerStyle={styles.cardStyle} title={item.fields.description}>
<Text style={styles.textStyle}>{item.fields.address.replace(/\n/g,'')}</Text>
<Text style={styles.textStyle}>Aantal vrije plaatsen: {item.fields.availablecapacity}</Text>
</Card>
)
}}
/>
</View>
)
};
const styles = StyleSheet.create({
container: {
flex: 1,
marginTop: 25
},
cardStyle: {
padding: 0,
borderRadius: 10
},
textStyle: {
flexDirection: 'row',
flex: 1,
marginBottom: 10,
marginLeft: 5
}
});
export default HomeScreen;
card元素有一个属性image,可以用来给卡片设置一张图片。我想通过这样做为卡片提供不同的图像
image={require(`../../assets/${item.fields.description}.jpg`)}
但 require 不允许我使用反引号和变量来执行此操作...有什么方法可以使用反引号或变量,以便我可以为不同的卡片制作不同的照片?
如果答案很明显,我深表歉意,但我尝试了很多东西,但它不起作用。
【问题讨论】:
-
现有 SO 帖子上有不同的选项似乎可以解决您的困境:stackoverflow.com/a/43821056/1188197。这篇博文 (willowtreeapps.com/ideas/…) 在 SO 帖子中也被引用,总结了如何在 require 函数中使用相对路径。简而言之,您不能使用变量代替文字字符串,...并且 require 语句在捆绑时解析。相反,您可以按照我分享的 SO 链接中的方式定义静态资产。
标签: reactjs react-native require react-native-elements