reactjs - 用反引号反应原生要求
问题描述
我正在实现一个应用程序,在主屏幕上我有一个平面列表元素,每个项目内部都有一个卡片元素。
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不允许我用反引号和变量来做到这一点......有没有办法使用反引号或变量,所以我可以为不同的卡片制作不同的照片?
如果答案很明显,我很抱歉,但我尝试了很多东西,但它不起作用。
解决方案
假设您创建了您的反应应用程序create-react-app
或者您正在使用 webpack 来捆绑您的代码,那么您试图实现的目标将不起作用:由于 Webpack 是在构建时运行的,因此当名称为时它无法确定要捆绑的模块一个动态变量。打包在运行前发生一次,因此这些变量还没有值。
如果您有少量图像,您可以执行以下操作:
let image1 = require('../../assets/xxx.jpg');
let image2 = require('../../assets/xxx.jpg');
...
image={image1}
...
但是,当然,如果您有很长的图像列表,这种方式将不是最佳的
更多细节可以在这个问题的讨论中找到
推荐阅读
- python - NameError 即使变量被初始化
- python - 使用 Beautiful Soup 抓取具有 URL 的弹出窗口(以及其他错误)
- java - 谁能解释为什么 int x=1_000_000 是有效的并打印 1000000 而不是抛出错误?
- nginx - 为 Nginx Ingress 中的特定位置设置 limit_req
- ruby-on-rails - 在部署到 EB 时升级 Ruby 版本
- joomla3.0 - 几个网站上的 Joomla SEF URL 问题
- java - 将多个 Apache Beam 管道打包到一个 jar 文件中
- python - python中的http代理,我应该何时以及如何关闭连接?
- jenkins - Jenkins AD 后备用户
- excel - 如果自动筛选标识符下的单元格为空白,如何连接 B 列的内容?