【发布时间】:2017-08-23 03:43:03
【问题描述】:
我想用 react native 构建一个相册应用,主要思想是使用sectionList 并将数据显示在这样的数组中:
class CustomImage extends Component{
render(){
return(
<View>
<Image style={styles.Img} source={this.props.imageName} />
<Text style={styles.text}>{this.props.name}</Text>
</View>
);
}
}
export default class DisplayAnImage extends Component {
render() {
return (
<View>
<SectionList
sections={[
{titile: 'small soldier', data: ["./gifs/2.gif", "./gifs/3.gif", "./gifs/4.gif"]}
]}
renderItem={({item}) => <CustomImage name={item} fromWeb={false} imageName={require(item)} />}
renderSectionHeader={({section}) => <Text style={styles.sectionHeader}>{section.title}</Text>}
/>
</View>
);
}
}
上面的代码被缩进以使其工作受到this answer的启发
我已经将 gifs 文件夹放在了项目文件夹下,如果我在 Image 组件中使用静态字符串作为 source={require(url)},一切都会奏效,但是当 url 从数组项迭代中出来时,它不会起作用。
如何使用 react native 进行这项工作?
编辑
不知道我是否可以编辑以使其更具体,我真正想做的是使用这样的生成数组:
function numberRange(start, end){
return new Array(end-start).fill().map((d,i) => {
var url = "./gifs/" + ( i+start) + ".gif";
return require(url)
});
}
export default class DisplayAnImage extends Component {
render() {
return (
<View>
<SectionList
sections={[
{title: 'small soldier', data: numberRange(2,30)},
{title: 'small soldier', data: numberRange(31,60)}
]}
renderItem={({item}) => <CustomImage name={item} fromWeb={false} imageName={item} />}
renderSectionHeader={({section}) => <Text style={styles.sectionHeader}>{section.title}</Text>}
/>
</View>
);
}
}
不知道有没有办法使用这个数组生成器来制作数组或者我必须徒手一个一个地输入路径:-(
【问题讨论】:
标签: javascript image react-native