无法动态构建 svg 路径 react native

亚当麦格克

我正在为我的应用程序构建自定义底部导航栏,但在链接 svg 图标时遇到了问题。这是我的代码:

// Imports
class MainTabNavigation extends React.Component {
  render() {
    const navigationOptions = ['Dashboard','Status','Referrals','More'];
    return(
      <View style={styles.navBar}>
      {
        navigationOptions.map(nav => {
          const lowerCaseString = nav.toLowerCase();
          const svgPath = `../../assets/icons/${lowerCaseString}.svg`;
            if (this.props.navigation.isFocused(nav)) {
              return(
              <TouchableOpacity style={[styles.tab,styles.focused]} onPress={() => {this.props.navigation.navigate(nav)}}>
                <SvgUri source={require(svgPath)} />
                <Text style={styles.captionStyle}>nav</Text>
              </TouchableOpacity>
              );
            } else {
              return(
              <TouchableOpacity style={styles.tab} onPress={() => {this.props.navigation.navigate({nav})}}>
                <SvgUri source={require(svgPath)} />
                <Text style={styles.captionStyle}>{nav}</Text>
              </TouchableOpacity>
              );
            }
        })
      }
      </View>
    );
  }
}

// Styles

const NavigationConnected = withNavigation( MainTabNavigation );
export { NavigationConnected as MainTabNavigation };

而且错误信息很奇怪。错误消息说:

calls to `require` expect exactly 1 string literal argument, but this was found: `require(svgPath)`.

我无法理解的是,svgPath字面意思是(请原谅双关语)一个字符串文字。我知道我正在连接字符串,但它仍然只是一个字符串文字。所以我的问题有两个:

1.为什么变量svgPath不是一个字符串文字?
2.如何通过我的 map() 调用动态构建我的 svg 路径?

为了使其工作,必须静态知道 require 中的图像名称。

// GOOD
<Image source={require('./my-icon.png')} />;

// BAD
var icon = this.props.active ? 'my-icon-active' : 'my-icon-inactive';
<Image source={require('./' + icon + '.png')} />;

// GOOD
var icon = this.props.active
  ? require('./my-icon-active.png')
  : require('./my-icon-inactive.png');
<Image source={icon} />;

参考:https : //facebook.github.io/react-native/docs/images.html

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

React Native-无法解决模块-即使路径正确

来自分类Dev

图像路径 react-native:无法解析模块

来自分类Dev

在React中样式化SVG路径

来自分类Dev

React-Native的本地require()路径

来自分类Dev

uri到React-native的真实路径

来自分类Dev

SVG使用PHP动态填充路径

来自分类Dev

组内动态CSS选择,SVG,路径

来自分类Dev

仅使用Javascript / jQuery的动态SVG路径

来自分类Dev

React Native在SVG图像上放置文本

来自分类Dev

react-native-svg-charts不动画

来自分类Dev

无法对SVG路径元素执行点击事件

来自分类Dev

无法重置svg路径的填充颜色?

来自分类Dev

无法在SVG图片中选择路径

来自分类Dev

无法对SVG路径元素执行点击事件

来自分类Dev

安装React Navigation后无法构建或安装React Native应用

来自分类Dev

svg路径内路径

来自分类Dev

React Native 动态样式

来自分类Dev

如何向 React 应用程序添加简单的 SVG 路径

来自分类Dev

在React中动态导入SVG

来自分类Dev

React SVG组件动态渲染

来自分类Dev

React Native Android App无法构建并显示以下错误

来自分类Dev

React-native构建失败:“无法创建任务':app:copyDownloadableDepsToLibs'”

来自分类Dev

无法构建React Native签名发行版

来自分类Dev

react-native 无法正确构建运行 android

来自分类Dev

更新后无法构建 React Native 应用程序

来自分类Dev

无法使用 expo 构建项目(react native 和 node)

来自分类Dev

React Native 无法通过 Xcode10 构建和运行

来自分类Dev

React Native 无法读取路径@babel\core\node_modules\json5\.bin\json5

来自分类Dev

重定向后React Native axios获取url的请求路径