为什么设置美元不起作用?

时间:2018-07-26 07:13:29

标签: react-native

如果我只设置了require('../img/dest.png'),则图像可以正常工作,但是当我尝试使用 the Tty Demystified

它将显示错误

calls to require expect exactly 1 string literal argument but this was found: require(""+item.img+"").(null)

有谁知道我的美元变量发生了什么?

谢谢。

render() {
  // Taken from https://flatuicolors.com/
  const items = [
    { name: 'Name', code: '#1abc9c', url: 'yahoo.com.tw', img: '../img/dest.png' }
  ];

  return (
    <GridView
      itemDimension={130}
      items={items}
      style={styles.gridView}
      renderItem={item => {
        console.log(`'${item.img}'`);
        return (
        <TouchableOpacity onPress={() => this.showLinkAlert(item.name, item.url)}>
          <ImageBackground source={require(`'${item.img}'`)} style={[styles.itemContainer, { backgroundColor: '#bdc3c7' }]}>
           <Text style={styles.itemName}>{item.name}</Text>
          </ImageBackground>
        </TouchableOpacity>
        );
      }}
    />
  );
  }
}

1 个答案:

答案 0 :(得分:3)

字符串替换在运行时发生,但是require在构建时发生。因此,当require运行时,它并不能替代任何东西,它只是试图找到一个名为那个的文件。