React Native从数据文件添加图像

时间:2016-10-15 13:18:31

标签: listview reactjs react-native listviewitem react-native-listview

我有一些像这样的静态数据:

{
    "title": "Book an Appointment",
    "image": "../img/icon_booking.png"
  },
  {
    "title": "Client Gallery",
    "image": "icon_gallery.png"
  },
  {
    "title": "Save Before/After Photos",
    "image": "icon_gallery.png"
  },

我正在创建一个列表视图,并希望将相关图像传递到列表视图单元格中。列表视图设置如下:

<ListView
    dataSource={this.state.dataSource}
    renderRow={(data) => <MainListRow {...data} />}
/>

MainListRow的内容如下:

const BOOKING_ICON = require('./img/icon_booking.png');

const MainListRow = (props) => (
  <View style={styles.container}>
    {props.image ? <Image source={{uri: props.image}} style={styles.photo} /> : null}
    <Text style={styles.text}>
      {`${props.title}`}
    </Text>
  </View>
);

export default MainListRow;

我从其他问题中了解到在调用之前需要定义图像(例如:How can I conditionally include images in React Native Component?

我无法弄清楚如何让图像正常工作,即使对于一张图像也是如此。理想情况下,我只想传递图像并让它工作。我已经尝试了不同的路径变体来尝试使其正确并匹配初始需求,但它没有任何区别。

1 个答案:

答案 0 :(得分:0)

根据评论,我能够改变我的数据结构,只需要那里的图像:

var data = [
     {id: 1, text: 'row 1', image: require('./img/icon_booking.png')},
     {id: 2, text: 'row 2'},
     {id: 3, text: 'row 3'},
     {id: 4, text: 'row 4'},
     {id: 5, text: 'row 5'},
     {id: 6, text: 'row 6'},
     {id: 7, text: 'row 7'},
     {id: 8, text: 'row 8'},
     {id: 9, text: 'row 9'},
     {id: 10, text: 'row 10'},
    ];